Resources-for-teaching-programming
Resources-for-teaching-programming copied to clipboard
Resources for teaching programming for artists, designers and architects
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 |
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 | 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
3D
-
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)
2D
-
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!
Copyright (c) 2014-2022 Alexandre B A Villares. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. CC-BY-SA-4.0 License