Resources for teaching programming
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.
Extended table of Hosts, Platforms & Languages
- 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|
Processing + Python tools table
|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||New names (for those used to Processing), experimental, still incomplete, no access to Processing Java libraries|
|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||New names (for those used to Processing), experimental, maybe some Processing Java libraries might not work|
✱ these are the ones I’m using most!
More FLOSS + Python options to explore
- FreeCAD — Your own 3D parametric modeler
- It has great a Python interactive console, bult-in editor (macro panel) and can also be used for 2D.
- Blender — Blender’s Python API
- OpenSCAD + Python tools:
- CADQuery & CQ-Editor — A Python parametric CAD scripting framework
- PyPlasm — Python version of the PLASM 3D modeling functional language
- VPython — A 3D programming environment for 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
- Related to the DrawBot/NodeBox1/PlotDevice family of tools.
- guizero — A really easy Python GUI library (based on Tkinter)
- Bezmerizing — Allison Parrish’s wonderful tiny library
- based on Flat — Generative infrastructure for Python
- PageBot — Scriptable page layout, vector graphics and typography environment
- Pero — A unified Python API for multiple drawing backends
- generativepy — Generative art and graphing library based on PyCairo
- vsketch — A plotter-centric Python generative art toolkit
Books and references
- 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 and the thonny-py5mode plugin 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!