Great. Looking forward to it. And don't worry, most people who have
contributed to SymPy aren't really "qualified". Most people are hobbyists
or students who are interested in some aspect of symbolic computing, often
motivated by some other project such as yourself.

Aaron Meurer

On Wed, Aug 31, 2022 at 12:29 PM phi ARCHITECT <illumi...@gmail.com> wrote:

> 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
> <https://groups.google.com/d/msgid/sympy/80cc2e85-167c-4e03-93cd-cc5163ede996n%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/CAKgW%3D6%2B4mG0qEFRYkfGm59orSOg5AQdRH7PBH5EZz3rCjU0ZrQ%40mail.gmail.com.

Reply via email to