Doc > Changelog > 1.1.205

Doc > Changelog > 1.1.205


  • fix bug where a bypassed node would still cook unnecessarily.
  • params NodePath, ParamPath and OperatorPath now have checks in case they refer to themselves or their own node, which previously created an infinite loop.

AUDIO nodes

This version introduces AUDIO Nodes, which allows the creation and manipulation of sounds. Previously, the only way to have sound was to import audio files (.mp3 or .wav) with the OBJ/PositionalAudio. Now you can import those via the AUDIO/File, and also create synthetisers to create sounds from scratch with:

And you can add sound effects using:

The OBJ/PositionalAudio has also been refactored for this change, as its url parameter has been deprecated in favor of creating an AUDIO/File inside it, and referring it in the OBJ/PositionalAudio.

In future versions, it will also be possible to import audio samples to be used instead of the synthetiser sounds.

ANIM nodes

It was previously possible to animate an object from 2 different ANIM node. That could create conflicts where the same property was animated with different parameters, leading to a jittery animation. The animation system now has protections to prevent this, and the choice is given to the user when starting an animation, to either make this animation stoppable or not.

  • If it is stoppable, when a new animation starts on that same property, it stops the first one.
  • If it is NOT stoppable, when a new animation attempts to start, it is immediately cancelled.

To set this, the ANIM/Null has a stoppable parameter.

Other changes for anim nodes are:

  • ANIM/Target has matrixAutoUpdate on by default. That parameter was initially off by default, but it was easy to forget to set it to true when animating position, rotation or scale.

  • ANIM/PropertyName has a new set of presets to quickly set properties like position, position.x, position.y and similar ones for rotation and scale.

EVENT nodes

  • add node EVENT/Param to trigger events when a parameter changes.
  • add node EVENT/IntersectData: Previously, we could use the geoAttribute parameters on the EVENT/Raycast node to fetch attribute from the geometry under the mouse cursor. But we could only read 1 attribute at a time. Now, by piping the raycast into multiple EVENT/IntersectData, you can access multiple attributes.
  • EVENT/NodeCook: fix bug where param registerOnlyFirstCooks was not properly used.

OBJ nodes

SOP nodes

  • SOP/ObjectProperties now accepts expressions, which allows for instance to create a different name for the input objects, using name_@objnum.

  • add SOP/AudioNode, to add a note string attributes on objects or points, which can be used in combination with the EVENT/Raycast to trigger specific sounds.

  • add SOP/PlaneHelper.
  • add SOP/NormalsHelper.

  • SOP/Torus: add open and cap parameters.

  • SOP/Polywire: the circles creating the sections are now oriented correctly.
  • SOP/Reflector: add direction parameter, making it clearer which direction the reflector is reflecting.
  • SOP/Scatter: large performance gain, allowing to create 1 million points in less than 1 second.
  • SOP/ParticlesSystemGPU: add active parameter. When the parameter is set to 0, the particles are not simulated. This can be very useful to trigger the particles to start at a specific time, or to pause them without having to pause the whole scene.


When using sound, browser security features require a user interaction before playing any sounds. This interaction could be a click or keypress. To help this, when selecting the root node (from the top menu -> Windows -> Root Node Params... ), you can see a new parameter displayAudioIcon. When it is set to 1, you can see a new icon on the top right corner of the viewer.

Clicking this icon will toggle the sound on and off of any OBJ/AudioListener will toggle the sound on and off.

Also, when a user views your 3D experience, clicking this a first time will generate the interaction required to play sound. It is therefore recommended to set the soundOn of the OBJ/AudioListener to 0, and let users toggle the sound on via the icon.


The palette plugin is now merged into the core engine, which gives you easy access to 2 nodes: - SOP/Palette: creates a color attribute on your geometry based on a palette - COP/Palette: creates a texture based on a palette



  • improve viewer management: The viewer would previously need to re-create the gl context when hidden and shown again, which made the environment map disappear, which affected the lighting. The viewer is now re-used, so the lighting should not be affected.
  • internal code change regarding copy/paste change. This may prevent you from copy pasting nodes from an editor version <=204 into 205, but it still works when copy pasting in between editors either <=204 or >205.
< back to changelog

newsletter, twitter, forum or discord.

Is this doc helpful/not helpful? Is there any information you would like that is not available? Don't hesitate to get in touch with any question or feedback, either by email, on Discord or the forum.