Hi all!
I’m Greg Stanton. I’m so excited that the Processing Foundation is participating again in GSoC! I’ll share a bit about myself and my project idea, in case any of you would be kind enough to provide feedback.
My background and motivation
I’m a professional tutor of higher-level math and a YouTuber. I have experience with the technologies I’d be using for my project, but I’m new to making open source contributions to others’ projects. So, I was really happy to learn that GSoC is now open to any open source beginner!
My long-term ambition is to share my education online with learners around the world, for free. Programming and mathematical visualizations are an important component of that. Many learners already know the benefits of watching mathematical animations on YouTube; I want to show them the joy and usefulness of programming their own! Especially interactive ones.
The problem I want to solve
Starting from graphical primitives means that basic mathematical visualizations can require an intimidating amount of programming.
In Python, manim has become a popular solution, and for good reason. But, there are still unmet needs, all of which the p5.js community prioritizes highly.
- Accessibility: It must be easy for total beginners to use in the browser, with no setup.
- Interactivity: It must support interactivity! Interacting > watching.
- Expressiveness: It must be easy to customize for different aesthetics.
Prior work by others
A p5.js library would be the perfect way to address these needs, and the potential for such a library is huge! So, I’ve been following others’ work in this area with great interest. I’ll list the most relevant GSoC projects below.
- Dynamic learning, GSoC 2018—Jithin K.S. (mentor: Saber Khan)
- Dynamic learning, GSoC 2019— Ashneel Das (mentor: Nick McIntyre)
- Math in Motion, GSoC 2019—A. Cheng, O. Garcia (mentors: G. Benedis-Grab, E. Nickles)
- p5.teach, GSoC 2021— Aditya Siddheshwar (mentors: Jithin K.S., N. McIntyre)
My prior work
I wrote my own software library years ago to address the needs I outlined. To make it easy for beginners, the basic functionality requires no programming experience. For example, they can create an axis with a simple command like drawAxis().
I’ve already used the library to create sketches in the following subjects (many of these have really improved my tutoring!):
- algebra
- analytic geometry
- single variable, multivariable, and vector calculus
- probability
- differential equations
I wrote my library in ProcessingJS, using what I learned on Khan Academy. Later, I learned p5.js from The Coding Train, and a lot more about software development. I used what I learned to develop more of the functionality I want for the library. An example is below.
My proposal (in a nutshell)
The ProcessingJS library that I wrote is 7000 lines of code, including comprehensive inline documentation. I propose to rewrite it in p5.js so that it will be more accessible, both to contributors and users.
I’ll need to refactor it using a different design pattern and run new tests. I’ll also want to create video tutorials to show how to use it, but I expect that would fall outside the scope of GSoC 2023.
Before I finish my formal proposal, I’d like to learn more about the design of p5.teach to determine if it would make sense to add to that, or if it would be better to create a separate library. If you’re around to talk about this @two.ticks, that’d be amazing!
My main question
Will work on a p5.js community library be considered for GSoC 2023? GSoC funding would make my project possible, and the mentorship would make it better! I’m asking because I don’t see libraries listed under p5.js project ideas this year. I do see libraries listed under Processing project ideas.
Thanks everyone!!
Greg
Edits:
- If my proposal would be more suitable for a Processing Foundation Fellowship, please let me know. I’m very interested in that program as well.
- A video of the interactive simulation pictured above, and a few more details can be found in my Twitter thread about this proposal.