Image Downloading + Rutt Etra

I thought I might contribute this comp to the Composition Gallery. Before I do that, I was hoping someone might take a look and advise on best practices (cuz I still feel new to Vuo).

The composition has two parts:

  1. Downloads images from a website (, loads two images and fades between them, loads another, fades, etc.
  2. Feeds the layers to a subcomposition designed to recreate some of the features from vade’s v002 Rutt Etra QC plugin.

I also notice two small issues right now:

  1. The images have a short glitchy thing that happens each time a new image/url loads. Is there a way to fix this? I was wondering about the Spin Off Event node, not sure…
  2. The Draggable Camera gets hung up, presumably from too many rows/columns in the Rutt Etra subcomp. (How do folks monitor load/fps, anyway?)

textureLibRuttEtra.vuo (9.6 KB)

jersmi.ruttEtra.vuo (11.5 KB)

to monitor fps / hover over the Render Layers to Image then click on the popup that appears. it becomes it’s own window at that point which stays open to monitor performance.

I’m guessing the slow performance may be caused by too many rows/columns.

Thanks, Azy.

Regarding the glitchy image loading, I guess I am wondering about preloading the images, esp. downloading from the internet. Maybe I should try building a list, using Fetch List of Images or something? Here’s where I am fuzzy (ie, not a programmer). Also fuzzy on why fps is ~40-50 on Render Layers to Image but Draggable Camera can’t keep up. Rows and columns is the clear culprit, I just want to be more clear on editor processes vs rendering process, cpu/gpu, etc.

The issue this comp has when switching images feels similar to other issues I have had so far not knowing when to insert a Hold Value node. Is that the issue here? Nothing I try works so far. I have also been trying Spin Off Events (looking at the Load Image Asynchronously example composition), no luck. Any suggestions?

A little progress maybe, using a Hold List after Enqueue. Still a little glitchy when images switch, though perhaps the glitch has it’s own charm, considering images get processed by the Rutt Etra subcomp.

Cool composition :)

glitchy thing that happens each time a new image/url loads

In your composition, you’re starting the Measure Time timer when the Fetch Image starts, instead of when it finishes (which could be a second or two later). So the composition is trying to transition images while the image is still downloading. The attached composition fixes it by (1) waiting for Fetch Image to complete before starting the timer (cable from Fetch Image to Measure Time) and (2) decreasing the transition time to reserve 1 second in each 6-second Fire Periodically cycle for the image to download (Subtract -> Curve).

As you figured out above, there needs to be a Hold Value node to keep the event from Fire Periodically from sneaking in between two events from Measure Time and making the image flicker. The attached composition actually adds two Hold Value nodes, to work with the above change.

The Draggable Camera gets hung up

It becomes more responsive if you change the trigger’s event throttling to drop events. (Right-click on the Updated Camera port and go to Set Event Throttling > Drop Events.)

textureLibRuttEtra_1.vuo (10.3 KB)

Yay!!! Thank you, Jaymie! That’s the guidance I was guessing I needed, as I feel my way through the dark corridors of event/data flow in Vuo. :-)

1 Like

Ok, last questions on this, I hope. Is it possible to turn this into an Image Generator? I am hoping to make video files. (I can use Syphon, I know).

I think the right question is, how can I replace Fire Periodically for Count Within Range and to get the images to fade properly? Also, is it possible to record mouse data, or do I need to set up camera animation?

textureLibRuttEtra_IG.vuo (15 KB)

To replace Fire Periodically, you could connect the time published port to Snap Value -> Increased.

You can record a video with mouse data (for any composition, not just Image Generator) by going to File > Start Recording in the composition’s menu. If it’s important to have a perfectly steady framerate, though, (or to set video recording options) then you should use Image Generator and use Vuo Editor’s File > Export > Movie… In that case, you can’t take mouse input, so you’ll have to simulate it in your composition.

File > Start Recording

Great convenience! Is there any way to change settings for CompositionLoader movie export? My export saved a huge H.264 movie – looks like full screen/retina 2048 x 1536px.

Screen Shot 2016-02-22 at 11.46.19 AM.png

(or to set video recording options)

Oops! Sorry, missed this… It would be cool to set a couple parameters for movie recording, allow us to (over)write default prefs in Terminal or something even…

@jersmi, that would make a good feature request.


I can’t run rutt etra node on vuo 2.3, there is no object in the output, how can this be fixed?

Hi Mikeiv ;)

I just checked and with some minor tweaks it works for me.

The sub composition called Rutra needs to be either installed in your Vuo Modules Folder, or alongside the main composition in a folder named “Modules”.

I also had to rename the sub composition without the _0 at the end for it to work.

Download the joined .zip file, it has the subcomp alongside in a folder, so it should run, just tested with Vuo 2.


Rutt (6.87 KB)


@Bodysoulspirit Thanks it worked! But not all;) only drawing mode 5 works, this is drawing with polygons, but points and lines are not displayed. But this can be done using a grid line node :)

Trouble getting the original running for me, too. Looks to me like the issue has to do with how subcomp ports now handle events (or do not pass them to all). Success connecting an event cable to update the drawing mode port (other ports, too) – slower rate event like from Fire Periodic Events might be better than the attached comp firing at whatever rate is coming out of the video player. Also, Allow First Event node inside the RuttEtra subcomp has nothing connected to it, so there is no “first event” to trigger some of the share value nodes (but some of that is working, maybe at default node values?).

Here’s the test comp I was using with RuttEtra subcomp with a couple changes/features – option to invert graph and Make Vertex Attribute Shader in place of Make Edge Shader.

EDIT: oops, wrong file, forgot Rutt Etra subcomp. Fixed. (5.22 KB)

Another unrelated issue in RuttEtra --looks like Make Oval Shader does not work like I thought. The intention was to make a grid of circle dots. Looks instead like that is not possible with Make Grid Points Object (instead shades the entire grid as a “global” shader, which of course is nice for some things…). Is there a way to do this (with the gotcha) so 256 x 256 grid performs at ~15 fps like the other grid objects? I tried with other grid methods, Build List, Arrange Objects/Layers in Grid, looks like too slow unless I am doing something wrong which is possible of course. Perhaps this amounts to FR’s like Make Grid Spheres Object (and/or Torus, which would be cool for other geometric shapes), or a second “Point Shader” port…

Might be already possible and I’m just missing something, but now I am thinking about new nodes – for example, is it possible to use vuo.scene.make.grid.points.c and simply copy/edit/save this code as some new thing to my modules folder? I was imagining that it could be straightforward to add the code so the point gets a shader before the grid is generated? Like a new line for “setPrimitiveShader” or whatever around the parts with point size, etc.:

VuoMesh_setPrimitiveSize(m, pointSize);  

My teammate has a solution for you. Remove Texture Coordinates will make the shader map locally to each point (rather than globally across the entire object). (For 2D you can use Make Oval Layer for the grid.)

OvalShaderTest-RemoveTextureCoordinates.vuo (3.14 KB)

Oh wow, that’s clever, very nice! Never would have thought of that.