» CraftLie: DX11 drawing for VL
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

CraftLie: DX11 drawing for VL

pack vl rendering GUI dx11
Credits: vux, flateric


The nodes resemble the beloved vvvv drawing nodes and will make you feel at home immediately. CraftLie creates a list of draw descriptions and sends them over one output pin to vvvv. In vvvv a special node takes the descriptions and renders them into a Renderer (DX11) of your choice.

No output pin mayhem and much better performance if you want to render complex scenes from VL.

Drake Loves VL

Placing the drawing nodes inside your VL data types makes much cleaner patches and shows the joy of object oriented patching. This makes it perfectly suited for UIs and other drawing tasks that have complicated visual structures and need dynamic instances.


Keep in mind that the rendering still takes place in vvvv. So you can use your vvvv shader knowledge to customize the Renderer (Craftlie) and draw the shapes in a different style. It's also possible to output many layers from VL and draw each with a different custom Renderer (CraftLie).

What does CraftLie mean?

CraftLie is, like FeralTic the dx11 library it is based on, and anagram of the major dx11 developer @flateric. Due to the fake nature of the drawing, the name fits perfectly.


  • Hierarchical layer system like in vvvv
  • Layer can be transformed
  • Layer can be put into world, view or projection space
  • All basic primitives
  • Simple text
  • 3D Text
  • Arbitrary Mesh Join
  • Billboard sprites
  • Textures can use relative paths to the vvvv patch that contains the Renderer (CraftLie)

Example Patches

Check the folder CraftLie.1.x.x\vvvv\girlpower for:
1. An overview patch which shows all nodes in action
2. How to use instancing
3. Interactive particle patch by @sebl
4. CPU core race which stresses all cores using reactive nodes
5. Sprites particles in perlin force field
6. Dynamic UI demo that creates layered windows

Windows VL
Dynamic Particles


The pack works for both 32-bit and 64-bit alike.
0. Make sure you have vvvv beta 35.7 or newer
1. Install latest dx11 pack.
2. Put the folder in the zip into the vvvv packs folder e.g.:


Source Code



16.06.17 [22:26 UTC] by tonfilm | 62 downloads
AnyCPU for vvvv alpha or beta >= 35.7

digitalwannabe 18/06/2017 - 00:20

wow, what's happening...checked this late last night and thought I was already in some delusional dream state ;) great contribution!

tonfilm 19/06/2017 - 21:05

haha, didn't want to spoil all the fun in the description... ;) thanks for testing it.

Noir 19/06/2017 - 21:13

big up

catweasel 23/06/2017 - 13:04

This is fascinating demo of VL, but looking through the patch, to me, it is almost incomprehensible, some VL for dummy notes would be appreciated. The gui looks to be very useful, but how to add elements to it?
I still find VL to be as transparent as mud, as poor as I am at code, it seems to make more sense, which isn't the expected result of a node based GUI, surely the data flow should be visible, it feels like the part that makes sense is somehow hidden from view and you are left with magic nodes that do something secret, maybe its just me?

tonfilm 23/06/2017 - 16:17

hi cat,

that is basically why you (and every other vvvv pro) should attend this:

and this:

anyway here is a tip on how to read the DynamicUI example:

it basically follows the super classic game development pattern for mainloops. as a vvvv developer you live in that world and you only need to understand one addition to the normal 'update' processing. the mainloop is split, or sliced, into several steps in the main patch:

1. check if there are any new input events
2. process all input events and update the state/logic of all elements accordingly
3. do normal "animation updates" like you are used to in vvvv
4. output layer to output pins and render it
> start over

step 2. is the new one for a vvvv developer and itself split into two steps, HitTest to check whether an element actually needs to process the input and ProcessEvents then does the actual logic and leaves the results for the Update stored in pads. so basically the pads connect the different mainloop slices by moving data/results from ProcessEvents to Update to animate/draw it...

so go into the patches and read them like this, someone from the outside is calling HitTest, if that returns true ProcessEvents will be called where the patch processes the UI logic. finally Update will be called to render animations and other stuff that was decided on ProcessEvents.

anonymous user login


~9h ago

tonfilm: server is an IP in the network. @vueno type: \\ into windows explorer

~12h ago

vueno: where can i find the fileserver from NODE17?

~14h ago

microdee: new vpm version is out 1.2.7 https://github.com/vvvvpm/vpm/releases/latest now you can select folder with a gui (+ drag and drop folder onto the text-box)

~23h ago

vasilis: Have a great time guys at Node17!!

~1d ago

matka: @marlonossiliere have a look here topographic-phong-shader

~1d ago

metrowave: the livestream is great...big thx!

~2d ago

Damien Rave: new small project from today: piano + midi + vvvv = love https://www.youtube.com/watch?v=KS5MZ5_KRb8

~2d ago

herbst: @tonfilm no stream here. I guess you know that and are frantically working on a solution? ;)

~2d ago

tonfilm: the #livestream URL is on: vvvv-keynode-livestream