for artists, designers and architects (repository)
An earlier version of this table was published as: VILLARES, A. B. A., & MOREIRA, D. (2017). Python on the Landscape of Programming Tools for Design and Architectural Education. Presented at the SIGRADI 2017, Concepcíon, Chile.
- Drawing or 3D modeling software that embeds a scripting language on the user interface or allows automation with a very limited number of steps between programming and code execution.
- Tools aimed at teaching programming in a visual or graphic context.
- [Ad hoc: tools that have shown potential for teaching in a visual or graphic context.]
| SORTABLE VIEW OF THE TABLE | CSV on GitHub | raw CSV |
| Name | Processing features | based on (& Python version) | Python standard library | libraries ecosystem | main features | main limitations |
|---|---|---|---|---|---|---|
| Processing Python Mode | Processing Java | Jython (Python 2) | complete | Java & Processing Java | available inside Processing IDE, very Processing compatible | no web sharing/deployment, no modern Python libs |
| p5py | a new inplementation (incomplete) | Python 3 | complete | Python only | truly Python compatible | Experimental, still incomplete, no web sharing/deployment, new names (for those used to Processing) |
| pyp5js (pyodide or transcrypt mode) | p5.js | Python 3 via Pyodide or Transcrypt | complete | Python, JavaScript & p5.js | web ready sketches & editor, very p5.js compatible & pyodide makes it very Python compatible | Experimental, still incomplete, p5.js features (as opposed to Processing Java/Python modes) |
| SkulptIDE and trinket.io | ProcessingJS | Skulpt (Python 2, going to 3 now) | partial | unknown, possibly JavaScript | very nice web IDE, browser based sketches | ProcessingJS is defunct; not extensible |
| BrythonIDE and p5py.com | p5.js | Brython (Python 3) | fairly complete | JavaScript & p5.js | browser IDE, browser based sketches & very p5.js compatible | p5.js features (as opposed to Processing Java/Python modes) |
| py5 | Processing Java 4 via JPype | Python 3 | complete | Python & Java* | truly Python 3 compatible for libraries, can be used on Jupyter notebooks, same core capabilities as Processing Java | Experimental, (*) not all traditional Processing Java libraries might work, new names |
- FreeCAD - "Your own 3D parametric modeler", has great a Python interactive console and can be used for 2D also.
- Blender
- OpenSCAD + Python: OpenPySCAD, SolidPython and PythonOpensCAD
- CADQuery & CQ-Editor
- PyPlasm A "3D modeling functional language" (but now in Python)
- sdf A Python library to generate 3D meshes based on SDFs (signed distance functions)
- ShoeBot - A great creative coding environment designed for making vector graphics and animations with Python, related to the DrawBot/NodeBox1/PlotDevice family of tools.
- guizero - A really easy Python GUI library (based on Tkinter)
- Flat + Allison Parrish's Bezmerizing
- PageBot
- Pero - A unified API for multiple drawing backends
- generativepy - Based on PyCairo
- Allen Downey's Think Python 2e EN / Pense em Python 2e PT
- Tristan Bunn's Learn Pyhon Visually and other wonderful resources, including Processing.py in Ten Lessons EN
- Al Sweigart's Automate the Boring Stuff and many other open resources EN
- Jake VanderPlas' Whirlwind Tour of Python EN
- My own open resources for teaching, in Portuguese Introdução à programação com Python em um contexto visual PT
Please consider feedback, colaboration by means of pull requests, and/or a small donation!
Copyright (c) 2014-2017 Alexandre B A Villares. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. CC-BY-NC-SA-4.0 License