Hi Aaron ~ Thanks for your quick reply and encouragement. I definitely understand we may be running into a time crunch. And I understand that you want to drive the development of Sympy.
Perhaps we could come up with a small, straightforward project that gets the ball rolling on making Sympy the foundation for a Geogebra style app for building geometric models. My next step for GEOMETOR Explorer is to consolidate the construction logic into a Model class, which could easily become a part of sympy.geometry. The Model can extend from List - so it is just a container of elements. But it would also handle: - deduplicating elements determine if an new element is already in the list. - finding intersections test new elements against previous elements for new points. - maintaining ancestral relationships points contain references to all parent structures. structures contain references to all the points on them. the ancestral trail of an element is its proof. - applying classes to elements like css, associate a list of class names to an element. classes could be used in rendering and analysis. classes could also be used to exclude a structure from testing intersections. - querying subsets provide filtered lists for specific element types or classes In the work I have done so far, I have come to think of elements in 3 categories: - points the data of the model. all points are derived except the given starting points. points are the food for structs. - structs the relationships of the model (lines and circles so far). structs are not a thing in the field, just a projection of a relationship of two points. intersecting structs create points. - graphics the highlights of the model (segments, polygons, wedges). like structs, but are used for highlighting a relationship of 2 or more points and extracting details (length, area, etc). graphics are not tested for intersections by default. I am heading towards subclassing the sympy.geometry elements (Point, Line and Circle) to create attributes for classes and ancestral info that would be managed by the Model. But I can also see a path for maintaining this info outside of the elements in the Model. One of the key considerations I have had from the beginning is to keep the Model separate from the rendering and analysis processes. While I am using Matplotlib today for rendering, I see the opportunity to do really cool things with Blender and FreeCad as well. And for analysis, I have implemented golden section identification so far, but I can see modules for cross ratios, harmonic ranges, etc. Regardless of the decision on the grant, I am committed to developing these concepts. And now that I have opened the door, I hope to share my progress with the community here and hopefully gain insight and knowledge to make the project successful. And I believe that independent work on the Model class could be integrated with Sympy at a later time, once the ideas have matured. The whole concept is pretty straightforward. Thanks again for your attention. ~ φ (phi) On Monday, August 29, 2022 at 12:57:40 PM UTC-7 asme...@gmail.com wrote: > Hi. > > Thanks for sharing. This looks like a great use of SymPy and other tools > in the Python ecosystem. I'd love to see more geogebra-like tools that make > use of SymPy and sympy.geometry to get exact algebraic expressions > surrounding geometric constructions. > > On Mon, Aug 29, 2022 at 8:47 AM phi ARCHITECT <illu...@gmail.com> wrote: > >> Hi Aaron and the Sympy team ~ >> >> I hope I am not too late to propose the *GEOMETOR Explorer* project for >> a NumFOCUS development grant. > > > The deadline is this Friday, so it's possibly too late. Can you go into > detail on what you'd like to propose to do? I'd prefer for these small > development grants to go towards making improvements to SymPy itself, > rather than to projects that make use of SymPy. But perhaps there are some > improvements that you've seen that could be made to sympy.geometry while > working on this. > > Also, generally speaking, I'd like to use the small development grants to > fund people who have already contributed to SymPy before, so that there is > a clear track record that they are able to complete the work. > > Aaron Meurer > > >> >> >> *GEOMETOR Explorer* is a Python library for modelling, analyzing and >> rendering complex geometric constructions using symbolic algebra. Of >> course, Sympy is at the heart of it. >> >> But first, an introduction. My friends call me *phi*, as in φ, the Greek >> letter, for reasons that will be obvious. I am not a mathematician, but I >> have had a career as an architect beginning with buildings and later in >> developing software and enterprise systems. But my true love has always >> been drafting - making beautiful drawings. >> >> A few years ago, I decided to indulge my interest in the golden ratio, >> particularly making geometric constructions that demonstrate golden >> sections. I started with hand drawings, reteaching myself geometry and >> algebra. I noticed that constructing one golden section often led to other >> sections in the field. It seemed to be everywhere. But the challenge of >> demonstrating that was daunting. I first turned to Geogebra, which greatly >> expanded my knowledge allowing me to create large geometric constructions >> and confirm the golden sections, but it required a lot of manual >> intervention and the results were numeric values. I felt if we were to >> really discover patterns, we would need to build the model symbolically. >> >> I set out to develop an scriptable system to generate the constructions, >> find all intersection points, and then find all the golden sections. After >> a false start with a browser-based solution, last January I found Sympy and >> Matplotlib. I had never worked with Python before so it was a big step, but >> the capabilities I have been able to pull together in less than a year are >> amazing to me. >> >> The most recent video on my YouTube channel demonstrates a series of >> constructions generated with GEOMETOR Explorer resulting in an incredible >> numbers of golden sections uncovered. >> 22.187 • finding golden sections with the new GEOMETOR Explorer >> <https://youtu.be/IOKgXb6Kce0> >> >> GEOMETOR on Github <https://github.com/geometor> >> I have established a Github organization (https://github.com/geometor) >> to be the center of all of the development and interaction around the >> projects, including hosting websites and documentation. >> >> Shifting GEOMETOR Explorer to Python has led me to shift all my content >> development and publishing tools to Python, as well. This will allow me to >> standardize on ReST for everything. So, the websites are in a state of flux >> but I have most the infrastructure in place. >> >> There is a lot to further develop. At the core are the GEOMETOR Explorer >> <https://github.com/geometor/geometor-explorer> libraries. The current >> version in the main branch is very "scripty" - grown organically as I was >> learning. In the develop branch, I have started refactoring the library >> into a simpler and more functional interface and adding documentation. I >> also want to add more analysis capabilities to identify harmonic ranges / >> symmetries. And ultimately, publish a reliable version for anyone to use on >> PyPI. >> >> Context for further development: >> >> - Deep Field project >> how many elements can we add to a geometric model? >> how many more golden sections in the field? >> generating large models is compute intensive - >> will it push Sympy to limits? >> - Euclid project >> create a functional hierarchy of all the constructions of Euclid's >> Elements >> development on parsing the heath edition >> - Phyllotaxis project >> study golden ratio and fibonacci patterns in plant formation >> 3d modeling >> - Polynumbers project >> based on the lectures of Norman Wildberger >> introduces polynomials into the Explorer capabilities >> crazy cool renderings >> - Pappus project >> demonstrate Pappus Theorem with analysis >> leading to Hexagrammum Mysticum. >> - Heptadecagon project >> create a symbolic construction of a regular 17-sided figure >> >> I hope this is enough to start a conversation. I have been wanting to >> step into the Sympy community for some time. Consider it done. >> >> I have two YouTube channels if you want to see more: >> >> - phi ARCHITECT >> <https://www.youtube.com/channel/UCYzRQS16EBmsbKuyKMFHSFQ> channel >> where I talk about what I am working on >> - GEOMETOR <https://www.youtube.com/channel/UCHw7yqZJDQ0A6WkAlxGKLeg> >> channel >> generated content from the research. The most recent videos were >> generated, orchestrated, accompanied and assembled with Python. >> >> Let's see if any of this is a good fit for a grant! >> >> ~ φ >> On Friday, August 5, 2022 at 1:10:13 PM UTC-7 asme...@gmail.com wrote: >> >>> NumFOCUS has opened 2022 round 3 of their small development grants. >>> >>> NumFOCUS small development grants allow funding NumFOCUS projects, such >>> as SymPy for work. Each project may submit at most one grant proposal. >>> >>> If anyone is interested in applying for this grant to do some work on >>> SymPy, please reach out to me. In the past, we have used these grants to >>> pay people to do maintenance work and to pay people to develop some >>> features. >>> >>> I have included the details below. If you are interested in applying, >>> please reach out to me about it by August 26 so that we will have time to >>> create and submit a proposal to NumFOCUS. >>> >>> Timeline: >>> >>> - >>> >>> Deadline for Proposal Submission: Sep 02, 2022 >>> - >>> >>> Projects will be Notified: Oct 14, 2022 (or sooner) >>> >>> >>> Available Funding: >>> >>> - >>> >>> Approx. $90,000 available to be awarded >>> - >>> >>> Up to $10,000 per proposal >>> >>> >>> Eligibility: >>> >>> - >>> >>> Any NumFOCUS Fiscally Sponsored or Affiliated project may submit >>> *one* proposal on behalf of the project *per grant cycle*. >>> - >>> >>> If you wish to solicit proposal ideas from your project >>> community, the project leaders must organize their own review process >>> to >>> select the proposal that the leadership will put forward to NumFOCUS. >>> - >>> >>> Funding can be used for: code development, documentation work; >>> website updates; workshops and sprints; educational, sustainability, and >>> diversity initiatives, travel to meetings & events, or other types of >>> projects. >>> - >>> >>> Proposed work must be achievable within the 12 months following the >>> award. >>> - >>> >>> The call is open to applicants from any nationality and can be >>> performed at any university, institute, or business worldwide (US export >>> laws permitting). >>> >>> >>> Funding Distribution: >>> >>> - >>> >>> For fiscally sponsored projects only, NumFOCUS can deposit the grant >>> funding directly into the project’s account. The project would then >>> submit invoices through the usual channels (i.e. Open Collective) to pay >>> the grant expenses. >>> - >>> >>> NumFOCUS can set up an independent contractor agreement with an >>> individual or company for work that exceeds $600 USD. >>> - >>> >>> NumFOCUS can award the money as a grant or subcontract to a student >>> or postdoc at a university (depending on the university's rules). >>> - >>> >>> NumFOCUS can directly pay for expenses associated with the grant >>> (e.g. booking flights on behalf of project leaders to attend a workshop, >>> per diems for travel days) >>> >>> >>> You can see past successful proposals here: >>> https://numfocus.org/programs/small-development-grants. >>> >>> Aaron Meurer >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sympy+un...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/sympy/79e109f0-3588-4817-b644-056950297b13n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/sympy/79e109f0-3588-4817-b644-056950297b13n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/55c84be3-20e5-496c-9c43-d1b55a69aa55n%40googlegroups.com.