/Resources-for-teaching-programming

Resources for teaching programming for artists, designers and architects

Primary LanguageCSS


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 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

More FLOSS + Python options to explore

3D
2D
  • 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

Books and references


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