Hacker News new | past | comments | ask | show | jobs | submit login
Vvvv – a live-programming environment for easy prototyping and development (vvvv.org)
187 points by talles on June 5, 2016 | hide | past | favorite | 36 comments

Also see vvvv.js, a project that mimicks VVVV but uses the web as its platform, instead of Windows :)


For people wanting to get play with visual programming, Pure Data is another beautiful, open source option.


Among this, vvvv, Max/MSP/Jitterm, derivative.ca and other software of this kind: which one is more powerful, more performing and the more mature in terms of deployment of the final product?

I think it depends on your skills. If you need maximum flexibility on every level (from multi screen setup to bit operations) then definitively vvvv since it's the most general.

I had no idea my initials might be popular.

I've worked with a few people who use vvvv and written (is that the right verb when it's graphical language) a bunch of of vvvv nodes to integrate with other stuff I was writing for them.

It's a a powerful system and seems to really fit the minds of some very talented and creative people. As seems to be common with graphical programming things abstraction can be a little hard unless it fits into the node-with-fixed-inputs-and-outputs mold but this isn't a huge problem for the sizes of projects I saw.

The really cool thing in my opinion is the live nature, coding and runtime are the same so you can see it all running as you change thing. Fantastic for both exploratory coding and performance coding. I used it once as a front end for playing with some head tracking code I was working in in C++ and it was a fun experience, pity it's Windows only!

> As seems to be common with graphical programming things abstraction can be a little hard unless it fits into the node-with-fixed-inputs-and-outputs mold

In other words, you're trapped in a first-order box: http://lambda-the-ultimate.org/node/5157#comment-85605

Constraints sometimes are a creativity booster in art, so maybe not so much a trap. Whereas unlimited tools or canvases may paralyze it. Just look at the demoscene to see what people create in a self-imposed limited environment.

A person chooses to confine themselves to watercolors, and masters the medium, or does something spectacular with it, since they focused on that medium. Just looking at the vvvv examples, I'd say there's plenty enough there to get started and then some.

Praxis runs on many platforms since it is Java-based, and has node editing, but you can edit code on the fly as well. You can do visuals, and it has the beginnings of a sound synthesis base already working and in progress. [1]

I personally use Extempore, a livecoding environment that evolved from Impromptu. It has a low-level, Scheme-like language called xtlang, and can do sound and visuals too. [2]

I also use Tidal, a Haskell-based system to livecode patterns of samples - very addictive, since it is easy to make something quick. [3]

Fluxus is a scheme-based system, that is mainly for visuals, although there is a lesser-known audio component called fluxa for linux and Mac OS for it. [4] It was the first livecoding system I had really been exposed to around 2005, a few years after I picked up Processing. [5]

Somebody mentioned Pd, PureData. You need the extended version to do graphics, since the vanilla Pd is node-based just for sound creation.

There are many other systems, and it seems the livecoding scene is exploding.

[1] http://www.praxislive.org/ [2] http://extempore.moso.com.au/ [3] http://tidalcycles.org/ [4] http://www.pawfal.org/fluxus/ [5] https://processing.org/

From the Extempore link:

> xtlang also borrows many Lisp like semantics including first class closures [emphasis mine], tail recursion and macros.

xtlang doesn't trap you in a first-order box. That's a good thing.

From the Tidal link:

> Tidal is embedded in the Haskell language.

Haskell doesn't trap you in a first-order box. Programming in a DSL embedded in Haskell is just programming in Haskell.

From the Fluxus link:

> Extends the Racket language with graphical commands and can be used within it’s own livecoding environment or from within the DrRacket IDE.

Same as above, s/Haskell/Racket/g.


FWIW, I never criticized the use of DSLs for art (or any other purpose). Only the imposition of first-order jails.

I didn't take your post as criticism, but rather a spark, or conversation starter, to think about self-imposed limits in art via tools or physical handicaps.

I had immediately thought of the demoscene, especially Inigo Quilez [1], and his creation Shadertoy [2]. It is amazing to see what people create with these tools.

Thanks for the link on 'first-order jails'. I thought I had the gist of it, until I read your link. I especially like the back and forth about higher order vs. first order re: Haskell and graphical user interfaces. I am curious how it applies to Praxis, which has a node editor, but you can hop into the code which is in Java. It is built from the ground up for distributed, non-glitch livecoding.

I am an experimenter, and although I fancy myself reading about logic and computing, I am only passingly familiar with it WRT your reference. I learn a lot about it from my studies with Shen [3], and recently Idris. [4]

Extempore, and its programmng language xtlang, are driven by livecoding needs, but it is basically a general systems programming language at this point. I believe Andrew started with S7 scheme like CM (Common Music) did. The original creator, Andrew Sorensen, and Ben Swift who works on it too, are courting, or are being courted by the HPC world. The need to have a language that could handle time well, or 'temporal recursion' for music creation, lends itself well to HPC concerns. Xtlang is fast. C fast. It uses LLVM in the back.

Blender3D has a nice node editor for building up procedural textures and shaders too as in this tutorial. [5] I find that the node/gui approach keeps me focused on what I am trying to emulate or build. I don't like it for programming like in LabView though, and I don't like node-based programming in the few incarnations I have seen. OTOH, Brainfuck is TC, but I wouldn't want to be in that 'first order jail'-free environment either ;) REVELATION: I do like J, which some people say looks like line noise! [6]

[1] http://iquilezles.org [2] https://www.shadertoy.com/ [3] http://shenlanguage.org/ [4] http://www.idris-lang.org/ [5] http://www.chocofur.com/6-shadersamptextures.html [6] jsoftware.com

> to think about self-imposed limits in art via tools or physical handicaps.

Oh, I'm also not denying the value of self-imposed limits:

(0) In a library I'm writing, I'm enforcing these rules: no unreachable code paths, no exceptions (or any other form of sneaky control flow), no asserts. Programming under these constraints is difficult, but the result is very satisfying: my functions now have more precise argument types, because I'm not allowed to throw an exception if they're passed the wrong argument!

(1) When I write music (which admittedly I don't do very well), I find it useful to come up with, say, 10 potential leitmotifs, reject all but 2 or 3 of them, and force myself to write the rest of the song or tune around the selected motifs. The other motifs are completely forbidden, though they may be reused when writing another song or tune.

> I am an experimenter, and although I fancy myself reading about logic and computing

I think anyone who's doing something new, not done before, has to be an experimenter to some extent. Which is a good thing! That's how cool stuff happens: try various approaches, until you find one that works. Even logic was developed that way. First-order jails limit what you can try, though.


As for the rest of your post, I have read it, but I can't intelligently comment. I'm a visually challenged person - I'm not blind, but I'm the kind of person who needs a ruler and a compass to draw stickmen.

I am self-taught, and the way category theory has been popularized in more than just mathematics has resulted in so many papers that it is hard to keep up. I am skimming a book called 'Category Theory for Scientists' at the moment.

I was first turned on to logic by Raymond Smullyan's books for laymen, but I have since bought his more academic books; I have not made it through them yet.

Now I look for these concepts in my tools too. That is why I chose Extempore, being Lisp/scheme-based, and I have looked into Haskell-based tools like Euterpea for music, and just today Hylogen for livecoding shaders in Haskell. Elm is also cool for front end development.

> ruler and a compass to draw stickmen.

I am stealing that one!

Yes, that's about it. Sometimes that really matters and sometimes it doesn't matter at all. It seems like a lot of the time for the sort of things people do in vvvv it's not so important. I certainly found it a limitation but it's hard to know how much that's an actual need and how much it's just me thinking in the languages I'm used to.

> It seems like a lot of the time for the sort of things people do in vvvv it's not so important.

It's not so important until it turns out it is. Say, because the project, while initially small, has grown to a size that demands using abstraction. Or because, while the original programmer unwittingly reimplemented the same patterns over and over, the next programmer is less willing to put up with so much duplication.

Every attempt to lower the craft of programming to the level of those who aren't willing to learn it has resulted has resulted in:

(0) An eventual admission that this approach doesn't work, e.g., how JavaScript was originally supposed to be easy for non-programmers to learn, but eventually grew programming patterns and practices that require programming knowledge to understand and put into practice, while keeping the gotchas and rough edges that were supposed not to matter.

(1) Half-assed attempts to retrofit means of abstraction into languages with too much bad legacy code, e.g., generics in Java or modules in JavaScript.

(2) Yet another attempt to lower the craft of programming, this time by someone else. Loop.

this is why VL was developed, an object oriented visual programming language that has much more ways of expression. especially the idea of data types, loops, branching and iterator patterns. it can already be tested as an integrated language in vvvv (like C# already is) if you download the alpha builds: https://vvvv.org/vl

Another powerful program along the same lines is touch designer https://www.derivative.ca

It's an offshoot of Houdini. It is exceptional at working with external hardware controllers and networking.

Really have to give it to touch designer, it is a fantastic piece of software that seems underrated with the current state of input devices and graphics power.

also worth mentioning:

http://vuo.org - intended as a replacement to quartz composer and cross platform later on.

http://www.bigfug.com/software/fugio/ - cross platform and came out this week.

"Fugio is an open visual programming application with support for Oculus Rift, timeline based media playback, OpenGL, OSC, MIDI, Arduino, and much more!"

Love vvvv and use it for all my graphics nonsense. The graphics is all DX9/DX11, that might be a little bit of a turnoff for the hacker news crowd, but the ability to string together and debug shaders in real-time and just generate gobs of data for visualization and interaction is unbeatable.

It's a visual programming language similar to Max msp, but focused on visuals and sensors. Windows only (DX9/DX11).

Free download, only pay if using commercially.

vvvv and vvvv.js is what i work with everyday

here is a showreel of some projects i did with it (little self promo but good examples for anyone interested)


The power is that you are super quick with setting up your cpu based part of the programm and then you can focus on shaders.

Currently I am developing on a 3d game engine implementation for vvvv.js with webgl. a vvvv server is procuedurally generating tons of assets and data-structures for the engine.

it can compile crossplatform on mobile devices, desktop apps and in browsers of course

for me vvvv -> vvvv.js developement framework and production pipeline is the most mind blowing thing i ever encountered

Someone should at least add Max/MSP/Jitter to the list. Visual programming is really fun. https://cycling74.com

Love VVVV. A purely dataflow programming language that you create "code" while it is already running. It's great for experimentation.

I really wanted something like scratch for api design. I can't load vvvv right niw for some reason, but i was hoping/looking for something like a cross between scratch & balsamiq to design programs.

For example a crud app, you could visually design the routing, db structure auth flow ect. is vvvv like this?

vvvv is probably not what you're looking for. It's pretty painful (but still possible) to do standard crud things. That's understandable because that's really not what it's for.

My two cents... when you know vvvv you simply don't need anything else...

Looks like we crashed the site

Not to be confused with VVVVVV, a puzzle platform game :)


Now this is just starting to get ridiculous...

No, we can go further, like: "Or v the letter".

Or V the sign.

or V the television show

or V for Vendetta

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact