ParticlesTutorial Small
ParticlesTutorial Small
Extending Isadora’s
3D Particles and 3D Model
Particles with media instances
Fig 3. Source Two, a PNG file that has 100 different images
within a 10 x 10 grid. The file has inherent transparency
Source One (figure 2) represents a single movie incorporated into the file when editing in image manipulation
file that has been composited in a grid of six software.
animated sections. The first tutorial (page 4)
describes the process of manipulating this file into
a particle system using the 3D Particles actor in
Isadora. Fig 4, Source Three is a 3DS file (below) that has four separate 3D geometry components.
The composition and points of origin of the elements in the source file are retained and
Isadora will read the geometry and display the mesh as individual components that can be
Source Two (figure 3) is a 10 x 10 grid of 2d raster manipulated and modified, in terms of their independent motion within the patch
image with an inherent transparency channel.
Isadora will recognise the transparency (alpha
channel) of the PSD as well as PNG file formats.
The Diffusion Cloud tutorial that begins on page
7 outlines how the file is used to create a particle
system with the 3D Particles actor.
Fig 5 & 6. Before and After :Source One (left): represents a file providing six different temporal iterations of the same animation sequence composited into a single looping movie file using
video editing software. This will allow variation in the individual particles emitted by Isadora’s 3D Particle actor as demonstrated in the screen capture of the ‘Stage’ output on the right.
1 x Movie Player,
2 x Counters,
1 x Pulse Generator, and
1 x 3D Particles.
In figure 7, the following parameters of the Counter Fig 7. The first patching task sets up the counters that will assign a specific part of the movie
actors are set to match the number of grid cells file area each time the Pulse Generator triggers.
associated with the movie file. Note the parameters
of the Counters match the ‘tex map across’ and
‘tex map down’ of the 3D Particles actor. The grid
of the movie is 3 x 2, therefore the counters are
set to ‘wrap’ at 3 and 2 and then linked to the ‘tex
map column’ and ‘tex map row’ inputs of the 3D
Particles. The Pulse Generator is also linked to the
‘add’ of each Counter and to the ‘add obj’ input at
the very bottom of the 3D Particles actor. The ‘z’
depth parameter will require a negative number
before the particles will appear on the stage in this
case -2.5.
Fig 9. The direction and ‘path’ that the particles travel can be controlled in many different ways. Here, two Wave Generator
actors provide a circular path for the particles by changing the ‘x’ and ‘y’ parameters. At the same time ‘z gravity and ‘z
velocity’ move the particles along the depth (z) axis giving the effect of the butterflies flying towards the viewer and out of the
screen..
Fig 10 & 11. Before and After. Source Two, a PNG file that has 100 different images within a 10 x 10 grid. The file has inherent transparency around each shape and the overall negative
spaces. The size of the grid and the number of unique 2d images that can be incorporated into a particle system can be much larger than this. I have used a sprite sheet with more than
2000 unique icons without any performance issues.
This example, Source Two (figure 10) replicates The development of this particle system Picture Player ‘video’ -> ‘texture map’ 3D Particles
some aspects of the previous demonstration, begins by importing the PNG source ‘10’ -> ‘tex map across’ 3D Particles
but instead uses a PNG file prepared in image and a source music/audio (MP4) ‘10’ -> ‘tex map down’ 3D Particles
image editing software. The file consists of a file into the Media Bin. To construct the Counter (1) output -> ‘tex map col’ 3D Particles
10 x 10 grid of shapes with varying degrees particles we will begin by patching: Counter (1) output -> ‘value1’ Comparator
of transparency and levels of opacity. The Comparator ‘true’ -> ‘add’ Counter (2)
intention, when preparing this file, was to Counter (2) ‘output’ -> ‘tex map row’ 3D Particles
create a particle effect with a high percentage 1 x Picture Player, Pulse Generator ‘trigger1’ -> ‘add’ Counter (1)
of diffusion as the particles overlap creating 2 x Counters, ‘-2.5’ -> ‘z’ (at the bottom of the 3DParticles actor)
a smoke or cloud-like simulation. Unlike the 1 x Comparator, Pulse Generator ‘trigger1’-> ‘add obj’ (at the bottom
movie file, the PNG file does not have inherent 1 x Movie Player, of the 3DParticles actor)
animation and the individual image elements 1 x Pulse Generator and
are reliant on the parameters of the 3D Particles 1 x 3D Particles actor The schematic is represented in figure 12 on page 8.
actor for all motion and movement effects.
Fig 16. The final inclusions to the particle system are the attenuation of the audio frequency output linked to a
‘Max Value Hold’ progressively updating the Limit Scale Value and hence the distribution of particles along the
‘y’ axis through 3D Particles actor.
Fig 17 & 18. Before & After: Source Three represents a 3DS file (left) that has four separate 3D geometry components. In the image render on the left, one of the components is completely
hidden inside another (there is a capsule shape inside the sphere). Using the 3D Model Particles actor in the Isadora software (right) with similar data delivery techniques used in the previous
demonstrations the individual geometry encapsulated in a 3DS file can appear to respond independently.
The Pulse Generator will drive the first Counter (1) and
a ‘Trigger Divider’ will drive the Counter (2). Patch the
actor set as indicated in figure 23.
We can begin to calibrate the parameters based on Fig 23. The 3DS file is assigned to the 3D Model Particles in the first parameter channel at the very top of
the number of geometry groups and the layout of texture the actor. Follow this schematic to patch the top half of the 3D Model Particles to use geometry groups
embedded in the 3DS file..
map grid segments. In the example (figure 22), there are
four geometry groups that the 3D Model Particles actor can
access for display and manipulation. However, to calibrate refresh and persistence for each of the ‘group index’ input of the 3D Model
an acceptable display of the individual geometry groups a geometry groups encapsulated in the Particles actor. Therefore Counter (1)
number of variables are required to work together so that the Source Three 3DS file used in the patch. will ‘wrap’ with a ‘minimum of 1 and a
frequency of the model switching at the ‘group index’ input Adjusting the parameter at the ‘hold ‘maximum’ of 4. This creates a particle
is aligned with the particle ‘hold time’ (lifespan) set in the 3D time’ input will provide an indication of instance of the four geometry meshes,
Model Particles actor. In addition ensure there are enough how this is going to work. For example each in turn.
assigned in the ‘particle count’. ‘0.01’ may produce flashing but ‘0.08’
might present a constant image of the The Movie Player is outputting a 3 x 2
Let’s make some calculations based on an intended geometry. We will revisit the ‘hold time’ grid of animated material. Counter (2)
minimum of 25 frames per second (fps). The first calculation again as it can produce some desirable and (3) wrap on a ‘minimum’ of 1 and
will return the frequency rate of the Pulse Generator, it is the special effects. a ‘maximum’ of 3 for Counter (2) and
number of geometry groups in the 3DS file multiplied by 25 a ‘minimum’ of 1 and a ‘maximum’ of
(the target fps): 4 x 25 = 100. Setting the Pulse Generator Next, the Counter (1) is driving the 2 for Counter (3). The output values
at a frequency of 100Hz will return an adequate particle display of the geometry through the will update the ‘tex map col’ and
The ‘Trigger Divider’ determines the rate Save the User Actor as
at which the movie sections appear on the a ‘Macro’ then rename
geometry. With the Pulse Generator set at it, for example: Range
100Hz then a value of 300 ‘divisor’ in the Selector (figure24).
Trigger Divider will produce a 3 second
increment of change to the texture map grid. Duplicate (copy/
paste) the custom user
Change the parameters of the 3D Model generated actor and
Particles as follows: position 2 in the Scene
‘3’ -> ‘tex map across’ and ‘2’ -> ‘tex map Editor next to the 3d
down’. Refer to figure 30 to check that all Model Particles and Fig 24, A user actor is a nested scene editor within a node in Isadora. They assist with
the management of complex networks within a patch
connections and parameters match. under the Counter actors.
Now that the top section of the 3D Model Create a reset actor by renaming a ‘Trigger
Particles system has been set-up we can Value’ then connect its ‘output’ to all the ‘reset’
start to look at the spatial manipulation of the inputs of the 2 x user actors. It is now time
geometry groups. to start providing the parameters for each
numbered range as a minimum and maximum
We will construct a way to deliver a unique and connect it to the variables of the 3D Model
coordinate variable each time the particle Particles.
emitter is displaying one of the 4 group
geometries. A nested patch inside a ‘user The sets of ranges associated with the user
actor’ will be needed to effectively manage actor, 1 - 4, (figure 25) will correspond to the
connections in the Scene Editor. (link to User same number and sequence of geometry
Actor tutorial here) groups being assigned to the particle system
by the Counter (1) actor. You should expect
Place a new ‘User Actor’ in the work area and the geometry order that appeared as a Fig 25, The User Actor is transformed into a
double-click to open it’s editor window. Place list in the 3D modelling software to be the ‘Macro’ that can be duplicated to apply to
different variable parameters in the patch
Page 14 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018
same order in Isadora. Connect the output
of Counter (1) to the ‘select’ input of the two
Range Selector user actors.
Mesh Doubling
Multiplying the visual instance of a mesh group
requires refreshing the frequency rate of the
particles at a high enough speed to allow the
appearance of multiple instances of the same
mesh. There are x4 mesh groups encoded
in the 3DS file used in this demonstration.
Therefore a basic frequency of the Pulse
Generator will be 100 Hz at 25 fps (25 x 4 =
100). In the case where we want to manipulate
another instance of one of these four mesh
groups, the frequency rate is required to
increase to allow the instance to occur without off setting the phase of the y axis by
disrupting the recurrence of the existing mesh. 25 produces a circular movement
path when used in conjunction
with an x axis with a phase set to
What we will be doing is doubling the refresh 0. Reset the phase inputs of both
frequency of all the geometry instances, since simultaneously to align the path to a
perfect circle
they are linked by the same Pulse Generator,
so that at least one of the mesh groups can Fig. 27 Additional Range Selector user actors used to create a motion path for one or more of the mesh groups.
occupy two positions in the image at the
required refresh rate for ‘persistence of vision’ Actor will be required to switch the parameters 1 x Sequential Trigger
(the perception of continuous animated of the existing Range Selector user actors 4 x Trigger Value
movement). created previously. 5 x User Input
4 x User Output
Increase the Pulse Generator to 200 Hz to start The new User Actor will have the following
this process. Next a new and different User included: Figure 28 provides the schematic required for
There is an endless number of ways to modify Fig. 29 The three Value Selector user actors
the patch to create unique and interesting allow for the parameters of a second instance
of a mesh group to display based on allocating
results. I am just about done here, It is over to frequency width in the patch
your imagination now.
Isadora tutorial document prepared by Bonemap © 2018 Fig. 30, The full patch work incorporates a number of user actors that sequence the parameters
https://community.troikatronix.com/topic/5434/3d-particles-tutorial associated with the discrete mesh groups.