GSoC 2023: Join the Processing Foundation as a Summer of Code Contributor!

Hello, Myself Ginisha soni
I read all the documentation over github for GSOC 2023. And I pretty much know all the skills it requires to start working on the p5.js resolve issues/ fix bugs on Area:Image project of processing foundation for gsoc 2023.
I just want to know what should be the first step after this ( after I know what project is of my likings ). I am very new to open source, haven’t done anything before as that was my learning phase. This is my first time participating in GSOC.
my previous experiences, I have worked on several Full-Stack projects.
I am particularly interested in working on this because my skills and experiences align well with the project’s requirements and I would be able to make a valuable contribution. I’m writing a proposal on Resolve Issues / Fix Bugs on Area: Image Issue.
I would love to connect with the mentors and get some guidance on how to get started with the above projects.
Thank you!

Hey there Processing community!

Just wanted to give a little help to those of you who are planning to apply for GSoC with us. If you’re feeling stuck with your proposal, you can take a look at @tushar55’s 2022 proposal for inspiration. But remember, every project is unique, so make sure you put some thought into tailoring the template to fit your own idea.

Good luck with your proposals, and let us know if you have any questions!

1 Like

@raclim
I have been further exploring the codebase and the project idea’s list to identify some areas of improvement that could be better incorporated with my proposal. I am highly interested in incorporating some parts of the Improving Developer Experience Project into my proposal.

On the codebase, I have identified some anti-patterns through the server-side code (which hinder developer experience):

  1. The codebase currently uses nested functions, and due to which, some standard functions like sendFailure() and sendSuccess() are duplicated across all the different controllers. They should be defined in a central file and imported into each controller.

  2. The codebase uses the .then() and .catch() methods to handle promises, which works well in simple cases. Still, in cases of multiple checks, the nesting of the same makes the code practically unreadable. On the other hand, with the advent of ES6 features, we should start migrating the code to use async-await so that developer readability can be improved.

  3. We should migrate all the mongoose models (and most of the corresponding controllers) to typescript, as the same provides the developers with IDE support, auto-completion, ability to catch errors and invalid types at the compile time itself! Typescript migration is somewhat of a standard nowadays and wouldn’t require much developer input, either! Even S3 controllers have typescript support!

PS. The biggest advantage of the same is the fact that this adoption is totally INCREMENTAL, and thus introducing typescript wouldn’t break the existing js, but also make the existing code more compliant and better tested!

These are simple suggestions, which can be implemented easily in a period of 2-3 weeks, but would help future developers by a ton and make the repository’s maintenance easier! What do you think?

Hi everyone,

Just a quick reminder that the deadline for the Google Summer of Code program is approaching soon. If you’re interested in applying, please note that your final proposal must be submitted via the official Google Summer of Code platform before 18:00 UTC next Tuesday April 4th. Only proposals submitted on the platform will be considered by the Processing Foundation for the program.

Wishing you all the best of luck with your application!

Cheers,
Raphaël

IMPORTANT

We want to remind you that while you’re free to use various resources, such as ChatGPT or other AI text generators, to enhance the quality of your proposal, we want to stress that proposals without substance or those that are just copy-pasted from AI text generators will be discarded.

Your proposals should reflect your unique ideas, creativity, and ability to contribute to the Processing Foundation’s mission. We encourage you to take the time to research the project you’re interested in, understand its objectives, and come up with your own proposal based on your understanding and insights. The more thoughtful and original your proposal is, the better your chances of being selected for the program.

3 Likes

Hi Jithin!

Thank you so much for taking the time to provide feedback! As you mentioned, I’m looking forward to drawing upon my teaching experience. Also, @jesi-rgb is actually working with me on the proposal now, which I’m super excited about!

We have complementary skill sets, and actually, we’re both YouTubers. My main personal motivation for developing this library is that I need it in order to start uploading again to my YouTube channel Higher Math Notes. I want it to be easy for beginners so that the learners watching my channel can use it too, and this will also make it easy for other creators to use.

We’ve also met with a couple of leaders in the science community, to learn more about their needs. They run initiatives that aim to incorporate p5.js into math and science courses at secondary and post-secondary institutions.

I totally agree that the first priority is to develop a list of features and to determine whether we can build on existing work like p5.teach. We’re working on that now, and I’m hoping to set up a meeting with @two.ticks once we have more precise design specs; I’m sure there’s a lot we can learn from each other.

Since you asked, I’m happy to share the library I built! Here’s the library and demo. Alongside the demo, you’ll see code for the library and the demo scenes, all in one file. Inline documentation is included.

Caveats:

  • The demo is pixelated in Firefox for some reason. It works in Chrome and Edge.
  • I wrote it in ProcessingJS years ago, on the Khan Academy platform.
  • I wasn’t able to use modern JavaScript or MathJax/KaTeX.
  • I used a design that’s simple for new programmers (no object-oriented constructs).
  • For the p5.js library I’m proposing, we’d use modern design patterns.

I originally named the library visualODE, since the functionality was geared toward ODEs (ordinary differential equations), which are a standard part of the curriculum for most math and engineering majors. However, as it turns out, the library was useful for a range of subjects. Here are some additional animations and interactives I made with my ProcessingJS library:

And here are some prototypes I’ve made in p5.js with features we may want to incorporate:

Thanks again for your feedback! If you have any other suggestions or would like to talk more, please let me know!

Best,
Greg

3 Likes

Thank you both @sableRaph and @AdityaRana for such a thorough response to my questions. I do not have experience with Android app development so I think I will stick to the other project. Could either (or both) of you take a look at my current draft of my proposal for the project Friendlier Error Messages for Processing? Here’s the link: https://docs.google.com/document/d/1bMy3oilFAB86T4nNupanvk63eIFyVfvxzpblJensnPQ/edit?usp=sharing Any feedback is greatly appreciated!

Hi Will,

Thanks for sharing your draft. This looks quite thoughtful and thorough. One thing that came to mind while reading is it would be nice to add a short case study to demonstrate your approach, with a couple examples of error messages, their friendly versions, and how you went from one to the other.

Cheers,
Raphaël

1 Like

Hey @sableRaph @Andres. I have almost finished my proposal for the Unity Processing Library, but I unfortunately just noticed that the project was removed from the project idea list in the “Removing mentor-less projects” commit to the project ideas. Will I still be able to submit my proposal for the project? I think this project would be an amazing inclusion to the Processing family.

Here’s a link to a draft of my proposal if you’d like to read through some of it. Any feedback would be greatly appreciated!

Hello @sableRaph, @raclim,
I am interested in contributing to the Adding Test Coverage & Asset Uploading Improvements projects. I am done with my draft proposal, it would mean a lot if you could take a look and provide some feedback for improvements.
Draft Proposal

Hey @sableRaph @raclim .
I am interested in contributing to the project idea Asset Uploading Improvements in the p5.js web editor.
I have prepared a draft proposal and It would be really helpful if you could take a look at it and provide some feedback and improvements before submitting it to the GSoC portal.
Draft Proposal

Thank you !

Thank you @sableRaph for such quick feedback! I have added some examples (on the same google doc) of my vision for the friendlier error messages. When writing them I attempted to follow my checklist for the error messages that I submitted in the earlier draft; is this what you mean by show how I went from one to the other?
Thank you again!

Wooo!!! this is the first time I join GSoC, and I found Processing Foundation has super interesting projects to promote programming languages

@HigherMathNotes Really appreciate your passion for this. I went through the visualizations, and they are amazing. One of the things I really want you to think about and focus on if you are doing this project is the interface of the library. Usually what happens is when we create such a library, as the authors, it will be easy for us to use the library, but the common users will find it difficult due to which it will fail adoption. So make sure to put extra effort to think about the interface of the library. Ideally, it should be simple as that of p5.js. Its really awesome that you are talking with the leaders in the science community. Hope you will carry out the conversation throughout your project development phase.

2 Likes

Hi @Jithin!

Thanks for taking a look! I’m so glad you like the visualizations I shared :smiley: And I absolutely, wholeheartedly agree that it’s essential to make the user-facing materials accessible to beginners. Fortunately, the p5.js community has set an amazing example for us to follow.

In the same way, I want to make the library accessible to potential contributors, which reminds me of a question I have. Maybe you or @two.ticks could answer it.

Background: As you pointed out in a previous message, one of the first priorities that @jesi-rgb and I have is to determine whether we can build on the p5.teach library. When I started looking into p5.teach a bit more, I noticed that it uses a different tech stack than p5.js. For example, it uses TypeScript instead of JavaScript, it uses Jest instead of Mocha/Chai for testing, and it uses TypeDoc instead of YUIDoc for generating docs.

Question: My initial concern is that using a different tech stack than p5.js will add extra friction for potential library contributors coming from the p5.js community. So, my question is, do you think this is a valid concern? I haven’t investigated this fully yet, so it’s entirely possible I’ve misunderstood something, or that there are other factors I haven’t considered.

The good news, I think, is that even if we have some design conflicts and decide to start a new repo, we could still possibly build on ideas from p5.teach and related projects.

Thanks again for your help!
Greg

1 Like

Yes, there is also a small catch here, p5.teach is targeted at people who wish to create animations due to which it has used anime.js under the hood. One of the things that we have to see is, whether our users will be interested in creating animations or simulations.

For example p5.js Web Editor there are some functions exposed by the library that helps you create an animation.

Simulations will be good if there are a lot of interactions involved like

So that is something that we have to decide.

2 Likes

Hi @sableRaph @AdityaRana @qianqian_ye @yinhwa

I am attaching the “open to comments for all” link for GSoC 2023 for the project “Friendly Error System(FES) and Documentation” below. I would love to have all of your worthy suggestions on it.
Looking forward to be a contributor to the project this summer and Processing, p5.js in general.

Thanks a lot in advance,
Ayush

1 Like

Hi @Jithin!

Would you be able to elaborate on why anime.js was used for animation, rather than using p5.js itself? (For example, I used p5.js to create the animations and simulations that I shared in a previous post.) Is it related to animating the TeX expressions?

Also, if there are any insights that you or @two.ticks could share about your choice of tech stack (TypeScript, Jest, TypeDoc), that’d be very helpful. My inclination is to use the same tech stack as p5.js, in order to reduce friction between the community of contributors that we’d build and the existing p5.js contributor community. If you found compelling reasons to choose a different stack, I’d be interested to hear them! This will help @jesi-rgb and I determine whether or not it makes sense for us to build directly on p5.teach.

Thanks again for all your help!
Greg

2 Likes

Hey, I have attached my Gsoc Proposal for the idea Mobile/Responsive Design Implementation of p5js web editor.

Need your reviews on it, so please comment. (comments are open for all)

Yes, please do submit your proposal! While we prioritize projects that have a mentor attached, we will consider all proposals based on their merits.