Most visual programming languages make limited use of the visual channel — the program structure is represented visually, but not much else. Usually the shapes and colors they use have an abstract (symbolic) meaning, not a concrete one.
What are some different approaches?
What are some different approaches?
One approach is graphical rewrite rules, or "visual before-after rules". It's a more concrete notion of visual programming: the program actually looks like the output.
Examples —
👉 AgentSheets: researchgate.net/profile/Alexan…
👉 KidSim / Stagecast Creator: acypher.com/Publications/C…
Examples —
👉 AgentSheets: researchgate.net/profile/Alexan…
👉 KidSim / Stagecast Creator: acypher.com/Publications/C…
Mikael Kindborg's work on "comic strip programs" addresses some of the limitations of graphical rewrite rules.
This uses more symbolic representation, based on the visual language of comics.
📄 Comic Strip Programs: Beyond Graphical Rewrite Rules citeseerx.ist.psu.edu/viewdoc/downlo…
This uses more symbolic representation, based on the visual language of comics.
📄 Comic Strip Programs: Beyond Graphical Rewrite Rules citeseerx.ist.psu.edu/viewdoc/downlo…
Squeak eToys has primitives for acting on visual conditions, e.g., "square overlaps line" or "car's 🟦 sees ⬜️".
This gives directness: the group of shapes isn't just a representation of the object, it *is* the object.
🎥 Squeak racetrack tutorial: youtube.com/watch?v=34cWCn…
This gives directness: the group of shapes isn't just a representation of the object, it *is* the object.
🎥 Squeak racetrack tutorial: youtube.com/watch?v=34cWCn…
There are also some visually-oriented esolangs.
Piet is probably the most well-known: dangermouse.net/esoteric/piet/…
Orca by @hundredrabbits is a 2D language where spatial relationships are semantically meaningful: metasyn.github.io/learn-orca/
Piet is probably the most well-known: dangermouse.net/esoteric/piet/…
Orca by @hundredrabbits is a 2D language where spatial relationships are semantically meaningful: metasyn.github.io/learn-orca/
What are some other approaches to visual programming? I'd love to see more examples of using visual channel in interesting ways…beyond what you usually see in blocks-based languages (e.g. Scratch) or flowcharts / nodes-and-wires (e.g. Quartz Composer).
I should also mention @mandy3284's work!
Recursive drawing: recursivedrawing.com
Shadershop: tobyschachman.com/Shadershop/
Apparatus: aprt.us
All domain-specific tools that are excellent examples of truly leveraging the visual aspects in a fundamental way.
Recursive drawing: recursivedrawing.com
Shadershop: tobyschachman.com/Shadershop/
Apparatus: aprt.us
All domain-specific tools that are excellent examples of truly leveraging the visual aspects in a fundamental way.
Can't believe I forgot to mention ToonTalk! (thx @abecedarius)
• Drag numbers on top of each other to add them (and a mouse comes to smash them together!)
• Use a (literal) scale to compare numbers
• Store values in nests
etc.
toontalk.github.io/ToonTalk/
• Drag numbers on top of each other to add them (and a mouse comes to smash them together!)
• Use a (literal) scale to compare numbers
• Store values in nests
etc.
toontalk.github.io/ToonTalk/
Spreadsheets for Images directly addresses the limitations of node-based VPLs:
"Flow charts spend their screen real estate on operators and their interconnections, which becomes uninteresting once the flow chart has been specified"
twitter.com/disconcision/s…
"Flow charts spend their screen real estate on operators and their interconnections, which becomes uninteresting once the flow chart has been specified"
twitter.com/disconcision/s…
https://twitter.com/dubroy/status/1495766614377058305 ∙ Archived on 2025-03-28.