GithubHelp home page GithubHelp logo

villares / resources-for-teaching-programming Goto Github PK

View Code? Open in Web Editor NEW
95.0 6.0 7.0 171 KB

Resources for teaching programming for artists, designers and architects

Home Page: https://villares.github.io/Resources-for-teaching-programming

HTML 100.00%
python creative-coding processing education hacktoberfest 2d-graphics 3d-graphics teaching

resources-for-teaching-programming's Introduction

Resources for teaching programming for artists, designers and architects

(repository)

Python on the Landscape of Programming Tools for Design and Architectural Education

This page was originally made to host data from this paper, that presented an earlier version of the table below:

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

SORTABLE VIEW OF THE TABLE| CSV on GitHub | raw CSV

About the table contents: (inclusion criteria)

  • 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.]

After updating a few times the data from the earlier table, work started on compiling the other tables below.


Processing + Python tools table

Name Processing features based on (& Python version) Python standard library libraries ecosystem main features main limitations
Processing Python Mode (the "reference implementation" for comparison) Processing 3 Java Jython (Python 2) complete Java & Processing Java Available inside Processing IDE, very Processing 3 compatible no web sharing/deployment, no modern Python 3 libs, not working with Processing 4, needs a new maintainer
py5 Processing 4 Java graphics via JPype Python 3 complete Python & Processing Java truly Python 3 compatible for libraries, can be used on Jupyter notebooks, same core capabilities as Processing 4 Java New snake_case names, experimental, maybe some Processing Java libraries might not work
p5py a new inplementation based on OpenGL (incomplete), and will add Skia backend Python 3 complete Python only truly Python compatible, no Java/JVM dependency New snake_case names, 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)
Proceso p5.js Python 3 via Pyodide complete Python, JavaScript & p5.js browser based sketches & very p5.js compatible, Python compatible,, names similar to py5 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)

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
  • Ursina — A 3D game engine based on the Panda3D framework
  • trimesh — A Python library to work with 3D meshes. Can be used on Jupyter Notebooks and integrates well with py5
  • 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
  • sdfCAD — A Python library to generate 3D meshes based on SDFs (Signed Distance Functions)
  • OpenSCAD + Python tools:

2D

  • ShoeBot — A great creative coding environment designed for making vector graphics and animations
    • Related to the DrawBot/NodeBox1/PlotDevice family of tools. See also drawbot-skia (a new implemetation of DrawBot)
  • pyxel — A retro game engine for Python.
  • pygame-zero — A zero-boilerplate games programming framework for Python 3, based on Pygame.
  • 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


Please consider feedback, colaboration by means of pull requests, and/or a small donation!


Copyright (c) 2014-2023 Alexandre B A Villares. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. CC-BY-SA-4.0 License

resources-for-teaching-programming's People

Contributors

berinhard avatar villares avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

resources-for-teaching-programming's Issues

Add shoebot

https://shoebot.github.io/shoebot/

Shoebot

It takes a Python script as input, which describes a drawing process, and outputs a vector graphic in a common open standard format: SVG, PDF, PostScript or PNG. It works through simple text files, and scripts can describe their own GUIs for controlling variables interactively. It can also be used as a Python module, a plugin for Python-scriptable tools such as Inkscape, and run from the command line without a GUI for automated tasks.

Shoebot is a port/rewrite of Nodebox 1. It was also inspired by DrawBot and Shoes. Thus, "Shoebot".

Add guizero and others to the CSV file

Check if those are in https://github.com/villares/Resources-for-teaching-programming/blob/main/I%20-%20Host%20platforms%20%26%20languages.csv

  • 3D

    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)

  • 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.