An Open Source Browser-Based Implementation of P5-Python and a Utility Library for Helping Teachers Explain Concepts in P5

These libraries are the backbone of our P5 Python Online Code Editor with Live Edit See this forum post announcing the editor: A Free P5 Python Online Editor with Live Edit | Designed For Teachers and Students Learning to Code | Strive Editor Alpha - #3 by StriveMath


Why did we make P5-Python-Web?

  • Python is an easier language for beginners to learn than JavaScript.
  • By making it a browser based students don’t need to instal Python and can more easily use browser-based editors like and to get started with coding with little friction.
  • Education systems globally are defaulting to Python as the language of choice for teaching students to code, both in university and school. We believe p5 has incredible potential to be the library that makes coding fun and engaging for new students, so enabling p5 to be used and taught in Python will help increase its adoption and popularity.

Why did we make p5.teach.js

At we’ve taught more than 1000+ kids over the past two years, and we’ve noticed the same pattern come up again and again. Kids get confused by a top left coordinate system when they’re used to the one taught in math class—kid’s struggle to understand the coordinate system.

We’ve seen these use cases and many others come up countless times, so we created a utility library to help teachers.


We’ve designed p5.teach.js to work with p5-python-web, but it will work with regular JavaScript as well.


This project is open source under the Apache licence, so we’re excited to work with the community to make both libraries more robust and feature packed.

  • Integrating p5 play into both libraries
  • Integrating into Jupyter Notebook like environments
  • More utility functions for teachers and students.

Thank yous



Great Efforts. :smiley:

1 Like

Awesome tool. A live editor for p5 python will be of immense use for the teaching learning community. Thanks for developing this.

1 Like

Thank you @Jithin; excited to get the community to help in building new features for these libraries :rocket:

Great progress y’all! I have one suggestion. p5.teach.js is a library that @two.ticks developed during GSoC a couple of years ago. The name collision seems avoidable–maybe go with p5.learn.js or something specific to math education?

Aaaa, thanks for the heads up @mcintyre ye p5.learn might be a good alternative. I’ll chat with the team about options and see what we can come up with :pray:

1 Like

Fantastic project. Well done to all involved! I’ll be watching this one closely.