![]() ![]() I find that some things which are easy to do in other languages are hard to do in NodeBox (or just hard for me to figure out how to do). I’ve been playing with NodeBox for about six months now and have created over forty networks which let me play with and try out various visualizations and data-driven animations. On the left is what happens when that JSON file happens to contain this network’s own structure (taken directly from it’s. ![]() Emrg nodebox series#On the right is a set of nodes that opens a JSON file, analyzes the contents, and plots it as a series of rectangles and connecting lines. This is what I mean by shaping clay.Īnother (somewhat mind-bending) example: a NodeBox network which can draw itself. The video of that presentation is a great introduction you can skip to 22:00 to see a demo of NodeBox in action which shows how quickly and easily you can shape a visualization. I first encountered it at the OpenVis conference in 2013. NodeBox is an open source, cross-platform GUI originally developed for generative artists. Extra bonus points if it includes natural scrubbing interactions for setting values ala Bret Victor. ![]() So what we need is a functional reactive programming language with a responsive, fun to use visual IDE, designed specifically for artists. A classic example is Lisp a more modern functional language now gaining traction is Clojure. Loops are banished and each node can have only one output so everything naturally flows in the same direction. In place of a sequence of instructions which focus on how to do things, functional programming languages use chains of transformations that focus on the desired result at each point. ![]() A visual style demands a simpler, more fluid kind of logic.Įnter an old idea in computer science which has seen a recent resurgence: functional programming. This forces connections into arbitrary knots and loops, creating more tangles and going against the overall flow. The problem these examples have is that, although visual, they slavishly adhere to an imperative style of coding where instructions are listed in order and even the words within each instruction must follow a specific syntax. Reaching elbow deep into a rat’s nest of wires is not anything like shaping clay.īut it doesn’t have to be this bad. Stringing wires or snapping bricks gets really messy really fast. I think it’s easy to see at a glance the problem with this approach: it doesn’t scale. The others let you drag boxes around and string wires between them. Scratch) let you snap together commands like Lego bricks. The image above includes some typical examples. Instead of typing instructions, you drag objects around and connect them together to express ideas.Ĭlockwise from upper left: Origami (Quartz Composer), Coral, Scratch, Form In theory, any written language can instead be represented as a collection of elements arranged and connected in space this is the idea behind visual programming languages. Traditional programming languages are frustrating for visual thinkers they rely on a phonological style which uses hands only to type and eyes only to read. “With my hands” refers to a kinesthetic or visuospatial style of thinking which leverages our ability to perceive and manipulate spatial relationships. There is no need to write a series of instructions and then “run” them to see what happens instead every change you make instantly affects the outcome. A familiar example is the spreadsheet: change a single cell and the rest of the sheet automatically updates. There are two key concepts here: “continuously shape” and “with my hands.”Ĭode that is continuously shaped is called reactive programming. “I want to grab a clump of clay and just continuously shape it with my hands until I am satisfied.” I said I wanted a process less like solving a Rubik’s cube and more like throwing a pot. In my previous post I argued that the hunt is on for a better way to code, a way more suited for a designer’s need to test new interactions. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |