Hi Aaron ~

I think this is a good strategy. Let's continue developing and 
communicating. I would welcome any feedback and creative discussions. Feel 
free to connect me with anyone you think would be interested in the 
concepts behind Explorer. 

As you suggested, I will start on the following:

   - setup a SymPy dev environment -
   I have not contributed yet, so first step is to get setup. There is so 
   much to learn from getting a closer look at the architecture, as well. And 
   I want to follow the same standards you are, particularly for documentation.
   - make some videos on how I am using SymPy in Explorer -
   I think this will be a good way to start a conversation about the 
   concepts and functionality in Explorer. I will share these here on the 
   forum if that is OK.
   - make a proposal on GitHub Issues -
   making the videos first will help to gather my thoughts and provide 
   background for the discussion.

I really have no qualifications for any of this. I just want to build some 
tools to answer some questions I have. And perhaps we can find some 
patterns that can reveal a larger truth. This has been a solitary effort 
for some time, so I am grateful to make this connection and for being taken 
seriously. 

SymPy has been an epiphany for me. Thank you for the work you are doing. 

~ φ

On Tuesday, August 30, 2022 at 1:52:10 PM UTC-7 asme...@gmail.com wrote:

> On Tue, Aug 30, 2022 at 8:16 AM phi ARCHITECT <illu...@gmail.com> wrote:
>
>> 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.
>>
>
> My view is that it's cleaner to keep track of this sort of data separate 
> from the symbolic objects, rather than subclassing them (this applies to 
> any sort of SymPy expression, not just geometry objects). The immutable 
> design of SymPy objects makes this pretty straightforward. Just store the 
> metadata in a dictionary.
>  
>
>>
>> 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. 
>>
>
> So I guess the question then is whether sympy.geometry should have some 
> code that is tied to geometric constructions. It sounds like it could be 
> useful, but I'd also like to hear feedback from some of the users of 
> sympy.geometry on your proposal (I personally don't use it very much). 
>
> I think we should skip this round. As I said, I prefer to fund people for 
> this grant who are already experienced SymPy developers. So far you haven't 
> contributed any code to SymPy (correct me if I am wrong). Furthermore, I 
> feel like your proposal requires a lot more feedback and thought than can 
> reasonably be done in a few days. I would suggest opening an issue in the 
> SymPy issue tracker to discuss any thoughts for extensions to 
> sympy.geometry, so we can discuss there whether the design makes sense and 
> whether the suggested improvements would be in scope.
>
> However, the NumFOCUS small development grants are done regularly (see 
> https://numfocus.org/programs/small-development-grants), so please keep 
> an eye out for future calls. 
>  
> Aaron Meurer
>
>
>>
>> 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+un...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sympy/55c84be3-20e5-496c-9c43-d1b55a69aa55n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sympy/55c84be3-20e5-496c-9c43-d1b55a69aa55n%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/80cc2e85-167c-4e03-93cd-cc5163ede996n%40googlegroups.com.

Reply via email to