0% found this document useful (0 votes)
9 views

ParticlesTutorial Small

ParticlesTutorial_small

Uploaded by

蔡岳泰
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

ParticlesTutorial Small

ParticlesTutorial_small

Uploaded by

蔡岳泰
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Extending Isadora’s

3D Particles and 3D Model Particles


By Bonemap © 2018

Page 1 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


v.1

Extending Isadora’s
3D Particles and 3D Model
Particles with media instances

One of the more difficult tasks for a visually


oriented person, like myself, is to write
descriptions of the processes that occur at a
Fig 1. Isadora 3D Particles with custom particle animation. There are no limits to the variations possible.
visual level. In light of this I hope that the following
reference for extending 3D Particles will be useful
to the Isadora user community.
computing that links Isadora to the analogue world effects within the emitted particles themselves.
I engage with Isadora because it provides a visual is another compelling function of the software. The functionality of animating individual particles
programming environment at its heart. For the makes Isadora’s native particle actors very
most part, all of the code fragments are neatly Over the last couple of years I have turned to powerful and effective. While these appear as
packaged into visual nodes with only the variable Isadora’s particle actors to achieve interactive the most complex actors native to Isadora, and
parameters available for input or modification. effects that are responsive to real time input. There therefore the most challenging to learn and
These nodes represent the functionality of are two particle actors that are fundamentally master, they are also possibly the most playful and
programming as visual snippets with inputs and different, but have very similar characteristics and rewarding in terms of the breadth of responsive
outputs that are ‘wired’ together in a process parameters. One is the ‘3D Particles’ and the other visual effects that they can achieve.
called ‘patching’. In Isadora the ‘nodes’ are called is ‘3D Model Particles’. The simple difference
‘actors’ and connection ‘wires’ are used to link is that 3D Particles use a 2D image source and You can jump in and generate 3D particles with
actors within a work area before their visual effects 3D Model Particles use a 3D model, specifically a ‘Shapes’ actor connected. However, for this
are routed to a ‘stage’ or video output for display. a .3DS file, as its source. However, both the 3D tutorial I have pre-prepared the media in other
Isadora patches can do more than just output Particles and the 3D Model Particles have options image editing software. There are three types
to a visual screen. The potential for interactivity to assign different source instances to sequential of files that will demonstrate how the 3D particle
and connectivity with other devices and physical particles making it possible to produce animation actors can be extended to achieve a greater
range of effects.

Page 2 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


Fig 2, Source One represents a single movie file that has been composited in a
grid of six animated butterflies. Each animation has a different flight path orientation
that represents the butterfly. However each instance is derived from a single video
source and re-composited into continuously looping motion graphics.

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.

Source Three (figure 4) represents a 3D file with


grouped geometry instances for use with the 3D
Model Particles actor. The tutorial for working with
the 3D Model Particles actor starts on page 11.
Each of these ‘types’ of media sources linked to
Isadora’s particle actors are able to be segmented
and assigned to individual particle instances
within a patch.

Page 3 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


EXAMPLE ONE: BUTTERFLIES

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.

Let’s start with Source One, the animated


butterflies. First import the video source file into the
Media Bin. To construct the particles we will begin
by patching in the Scene Editor (Isadora‘s
workspace) using the following actors:

1 x Movie Player,
2 x Counters,
1 x Pulse Generator, and
1 x 3D Particles.

Page 4 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


The Pulse Generator provides
The Movie Player handles the a trigger in hertz (triggers per The first 8 parameters of the
Working from the top of the 3D Particles actor the linked source file second). Its purpose in the The Counters are cycling 3D Particles actor calibrates
following connection and parameters are going to patch is to initiate each new through the coordinates of the a gridded image input
particle in the system grid areas (columns and rows)
be adjusted (figure 7):

Movie Player ‘video out’ -> texture map


‘3’ -> tex map across
‘2’ -> tex map down
Counter (1) ‘output’ -> tex map col
Counter (2) ‘output’ -> tex map row
The Pulse Generator is also
Pulse Generator ‘trigger 1’ -> ‘add’ Counter (1 & 2) connected to the ‘add obj’
‘-2.5’ -> ‘z’ (at the bottom of the 3DParticles actor) input at the bottom of the 3D
Particles actor
Pulse Generator ‘trigger 1’ -> add obj (at the bottom
of the 3DParticles actor)

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.

The effects generated by the patch require some


refinement and additional actors can be added
(figure 8). The green background of the video can
be removed using a ‘Chroma Key’ actor. The color
calibration can be shifted to the 3D Particles ‘color
shift’, ‘start’, ‘mid’ and ‘end’ color parameters but
first desaturate the movie with a ‘HSL Adjust’ actor.

The Counter system can be enhanced with a


‘Comparator’ actor to create a switch that more
accurately moves along the columns and rows of Fig 8. Additional actors refine the video input and the way the movie image grid cells are being distributed to the 3D Particles.

Page 5 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


the movie’s image grid cells.

Now that the foundation of the particle


system is in place the spatial qualities of the
particle motion can be established by
adding inputs to the various x, y and z
parameters in the lower half of the 3D
Particles actor. And using a combination of
Pulse Generator (Hz) values, ‘particle
count’, ‘hold time’ (life span) and
parameters such as ‘z gravity’ and ‘z
velocity’, different animated effects can be
achieved.

Additional effects and modifications can


continue to be added to various areas
of the patch, for example ‘Color Maker
HSBA’ and ‘Motion Blur’. In Figure 9, the
Color Maker HSBA is represented with
a series of ‘Trigger Value’ actors and a
‘Sequential Trigger’ actor all connected to
the same Pulse Generator as the rest of the
patch. Synchronising all of the changing
attributes, to match the input at the ‘add
obj’ trigger, allows individual parameters
to be delivered to the particle as it is being
generated by the 3D Particles actor. Using
actors that perform a cycle such as Wave
Generators and Sequential Trigger, allows
some control over how different parameters
are delivered to individual particles in turn.

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..

Page 6 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


EXAMPLE TWO: DIFFUSION CLOUD

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.

Page 7 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


There are some standard concepts to
consider when entering the parameters
for your patch. For example, knowing
how many columns and rows there are
in your source image media may involve
counting the horizontal and vertical grid
axis in image preview software. The Pulse
Generator triggers individual particles
to be emitted from the 3D Particles
actor. Higher frequencies produce more
particles per second.

This patch uses audio frequency analysis


from the Movie Player to drive a series of
generative cycles within the composition. Figure 12. The schematic for connecting the actors to the top half of the 3D Particles actor
This requires preparing the Movie Player
actor (figure 13 & 14) to accomplish a
‘freq’ output that can be integrated into the
patch Double click on the Audio frequency
Movie Player tab to output is activated
access the drop down
The Movie Player audio track is used in options
‘interaction’ mode and the ‘freq bands’
enabled by clicking through the Movie
Player tab at the top of the actor. Place Check the box
a ‘1’ in the freq bands channel of the next to ‘freq bands’
Movie Player (figure 14). We will use only to enable audio
frequency analysis
one audio frequency output to drive the of the sound file
parameters of the particle system.
Type ‘1’ into the freq
Change the Movie bands channel
Player mode to
‘interaction’
Fig 13 & 14. The Movie Player has built in audio frequency analysis, but it must be ‘turned on’ by placing the actor in ‘interaction’
mode and then accessing the in/out drop-down options by double clicking the actor name tab ‘eye’ symbol

Page 8 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


Now we will construct a ‘Value Delay Line’ The input value going to the first The input ‘select’ value is linked
Value Delay Line actor in the stack from the Counter(1) output that
chain. It will take the frequency response comes from the Movie Player ‘freq is already cycling through 1 - 10
from the Movie Player audio and spread the 1’ output and synchronised with the Pulse
output across 10 x instances that will then Generator.
be assigned to a cycle of particles in turn. To
build the chain place 10 x Value Delay Line
actors in a column within the work area of
your Isadora patch. Link the ‘value out’ to the
‘value’ of the actor immediately below until
they are all connected. A single output of a
‘Absolute Value’ actor linked to all of the ‘size’
inputs creates a value delay chain that can
be calibrated easily. The Absolute Value actor
can then be renamed to a more descriptive
title such as ‘delay chain amount’ (Figure 15).

The use of 10 actors in the column is a


number derived from the Source Two image
grid 10 x 10. The intention is to spread out
the repetition within the cycle so that there is
less chance of visible patterns of repetition Fig15. The Value Delay Line chain delivers 10 unique numerical representations of the audio frequency analysis that can be
used to distribute the particles across the visual display. This kind of complexity in an Isadora patch can be encapsulated in a
appearing in the final video output. user actor to reduce the amount of patch clutter.

The column of Value Delay Line actors


are connected to a ‘Selector’ actor with 10
inputs. The ‘select’ input has a connection Note that the calibration of the Limit-Scale There are infinite variations and nuance
from the Counter (1) actor that is driving the Value actor is intended to spread the possible through small incremental changes
grid selection at the top of the 3D Particles appearance of the particles along the vertical to the variable parameters of the 3D Particles
actor. Counter (1) is already programmed axis of the stage, in this case the range is parameters.
to wrap in a series of 10 linked to the Pulse ‘-1.5 , 1.5’ and this is dependent on what has
Generator, therefore its value output is perfect been set in the ‘z’ (depth) input. Generally, a
for also linking to the ‘select’ input of the patch like this will require a bit of fine tuning
Selector actor. In turn the Selector ‘output’ or tweaking in a number of different places
is connected to a Limit-Scale Value actor to find the balance of variables to create an
and then to ‘y’ input at the bottom of the 3D acceptable particle display. Try changing the
Particles actor. z value in the 3D Particles to -5, for example.

Page 9 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


The ‘particle count’ determines how many particles can
The ‘Max Value Hold’ calibrates the ‘limit
be active at one time. Once the limit is reached older
max’ based on the incoming frequency
particles will disappear.
analysis and ‘resets’ when the ‘loop end’
is triggered in the Movie Player. The ‘obj scale h’ and ‘obj scale v’ are determining the
overall scale and aspect ratio of the particles as they are
being emitted.
The ‘size shift’ parameters determine the changes of a
particles size over its lifespan.
The color of each particle can be determined using
the ‘color shift’ parameters. In this case the colors are
unchanging.
The ‘fade-in time’, ‘hold-time’ and ‘fade-out time’
The ‘out min’ and ‘out determine the lifespan of each particle and dependant
max’ of this Limit Scale on if there are enough in the ‘particle count’ to allow a
Value actor is directly complete lifespan to occur.
responsible for the
position of particles
across the height of the
display (y axis).

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.

Page 10 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


EXAMPLE THREE: GEOMETRY GROUPS & 3D MODEL PARTICLES

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.

We take a step away from the 3D Particles


actor to explore how the concepts used in
the previous demonstrations might work to
produce idiosyncratic effects in the 3D Model
Particles actor.

There are three media files that have been


prepared for use with the 3D Model Particles
actor. The first, figure 19, is an image file
(.JPG) that is linked to the diffusion texture
material applied to the 3D model before the file
is exported from the 3D modelling software. Fig 19. A jpeg file used to apply Fig 20. A 3D scene with numerous individual Fig 21. An MP4 movie file with six animated
This file must be present in the folder of linked a diffusion material texture to the geometry models, in this case four, exported zones, this will be used to replace the 3D
3D model and saved along with and saved in a single .3DS formatted file models material texture through the 3D Model
media along with the .3DS file or the Isadora
the .3DS file Particles actor inside the Isadora patch
software will not function as expected with this
demonstration.

Page 11 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


Persistence of Vision mesh or a third instance of all 4 meshes the
It appears to me that this patch works basic refresh rate would need to be multiplied
because of human ‘persistence of vision’ and by 3 etc.
that we are programming the patch to refresh
its image much faster than our eyes can Groups
perceive, therefore, the elements appear to This technique involves considering the 3D
coalesce into a continuous image. mesh models within a single file as geometry
groups. The models can be complex but
Fig 22. Isadora Preferences can be changed to the nominal the 3DS file format is limited to a mesh
A Pulse Generator linked to a Counter and the
frame rate for the patch. It is recommended to select a
‘group index’ of the 3D Model Particles actor is moderate fps constructed of under 65,000 vertices. (I
the foundation of this approach to working with use the open source software ‘Meshlab’ to
3D models encapsulated in a single 3DS file. effectively simplify complex geometry to
the mesh ‘groups’. Secondary mesh positions fit this limitation: www.meshlab.net). In 3D
A ‘group’ in the 3DS file can be an can be programmed into the patch by modelling software shapes can be grouped
amalgamation of several meshes together and implementing a ‘doubling’ of the refresh rate. together to form more complex forms. The 3D
the ‘grouping’ that is referenced as the ‘group Model Particles actor in Isadora segments the
index’ of 3D Model Particles is determined by To do this, it is first required to double the different groups of geometry within a single
third-party 3D modelling software where the frequency rate of the Pulse Generator. This will 3DS file.
3DS file originated. generate the image refresh rate to allow the
display of two instances of the model within a In this demonstration we are using very simple
The basis for the patch to function is to single image frame (page 16). geometry (Figure 17): a ball, torus, capsule
calculate the number of 3D mesh groups in and a ‘relief’ or deformed plane. However, this
the 3DS file and multiply by the target frames The 3D file associated with this patch has 4 technique will work with many more geometry
per second (fps), this will return the nominal mesh geometries that are in separate groups. groups within a single 3DS file.
refresh rate frequency required for the Pulse The basic formula for this file is:
Generator. 4 mesh x 25 fps = 100 Hz Frequency refresh After the media components are prepared,
rate, therefore, 100 would be entered into the saved and imported into Isadora, the following
To test that the patch will display correctly set Pulse Generator to run the patch. actors can be placed in the work area (Scene
the Isadora preferences to a moderate frame Editor):
rate. We will use 25 frames per second for this However, to create the refresh rate that will 1 x 3D Model Particles
demonstration. And the task rate to 18 - 25 per allow secondary instances of the 4 meshes 1 x Pulse Generator
frame or higher. the frequency (Hz) will need to be doubled. 1 x Movie Player
In theory to have secondary instances of 1 1 x Add Alpha Channel
Geometry Doubling mesh or secondary instances of all 4 meshes 3 x Counter
The last part of the demonstration will look at it would require the Hz to be doubled. If there 1 x comparator
a technique for multiplying the appearance of was an attempt to have a third instance of a 1 x Trigger Divider

Page 12 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


This patch will rapidly cycle through the geometry
groups in the.3DS file. And, in addition, cycle through
the animated zones associated with the movie file.
Therefore, x 3 Counter actors are required to be setup.

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.

Pulse Generator ‘trigger1’ -> ‘add’ Counter (1)


Counter (1) ‘output’ -> ‘group index’ 3D Model Particles
Pulse Generator ‘trigger1’ -> ‘trig in’ Trigger Divider
Trigger Divider ‘ trig out’ -> ‘add’ Counter (2)
Counter(2) ‘output’ -> ‘value1’ Comparator
Comparator ‘true’ -> ‘add’ Counter (3)
Movie Player ‘video out’ -> ‘video’ Add Alpha Channel
Movie Player ‘video out’ -> ‘mask’ Add Alpha Channel
Add Alpha Channel ‘video out’ ->‘texture map’ 3D Model Particles
Pulse Generator ‘trigger1’ -> ‘add obj’ 3D Model Particles
‘-75’ -> ‘z’ 3D Model Particles

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

Page 13 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


‘tex map row’ with individual sections of the the following into the User
movie image. This connection to the 3d Model Actor (figure 23):
Particles actor will replace the jpeg texture
associated with the 3D meshes when the 1 x Wave Generator
file was modelled. However, the image file is 4 x Limit -Scale Value
required to be in the same directory folder 1 x Selector
as the 3DS file for Isadora to perform this 12 x User Input
function. 1 x User Output

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.

Place a ‘Color Maker HSBA’ near to the


‘output’ of the user actor closest to the ‘color
shift’ parameters of the 3D Model Particles
(figure 26). Link the ‘output’ to the ‘mid color’
with a connection wire. Try the following
settings in the user actor:

‘0’ -> ‘1 out min’


‘90’ -> ‘1 out max’ The ‘select’ inputs come
from the Counter (1)

‘90’ -> ‘2 out min’


‘180’ -> ‘2 out max’

‘180’ -> ‘3 out min’


‘240’ -> ‘3 out max’ The ‘add obj’ input
comes from the Pulse
Generator
‘240’ -> ‘4 out min’
‘360’ -> ‘4 out max’
Fig 26, The User Actor can be copy and pasted to create numerous instances.
If the patch is operating correctly the geometry
will each have its own colour. If the colour
is not independent or there is flashing try The ‘Add Alpha Channel’ actor in the Scene Particles to spin each of the mesh groups
adjusting the parameter settings based on the Editor takes a connection from the Movie individually. Use the following settings in the
indicated settings in figure 26. Player ‘video output’ to both the ‘video’ and second user actor:
‘mask’ inputs. Make sure the ‘video out’ of
The movie with the six spinning rosettes the Add Alpha Channel is connected to ‘-360’ -> ‘1 out min’ ‘90’ -> ‘3 out min’
is intended to display with transparency. the ‘texture map’ of the 3D Model Particles. ‘360’ -> ‘1 out max’ ‘-360’ -> ‘3 out max’
Although transparency is not inherently Transparency will now replace the darker
encoded in the file it is possible to use areas of the video. ‘-90’ -> ‘2 out min’ ‘360’ -> ‘4 out min’
the image itself to effect an appropriate ‘360’ -> ‘2 out max’ ‘-180’ -> ‘4 out max’
transparency channel (this works because the The next Range Selector ‘output1‘ will connect
content of the video file is black and white). to the ‘obj rot x’, and ‘obj rot y’ of the 3D Model Preview the results in the Isadora stage.

Page 15 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


More Range Selector user actors can be added
to the patch to create additional effects and
movement. Figure 27 indicates an addition of
x 2 user actors that provide a circular path for
one of the mesh groups. One Range Selector is
connected to the ‘x’ input and the other to the
‘y’ input of the 3D Model Particles actor. The
second user actor, connected to the y input has
a phase offset of 25.

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

Page 16 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


linking the User Actor.

Save the new User Actor as a macro and


rename it to Value Selector.

We will use three of the new Value Selector


user actors to complete the mesh doubling
process. One for each set of parameters
associated the two duplicate mesh groups and
the third to combine the parameters and send
them to one of the existing Range Selectors
already in the patch.

We will also use a Trigger Divider actor


to reduce the frequency rate of the Pulse Fig. 28 The nested node structure of the second user actor used in the demonstration.
Generator by a divisor of 2 and connect to the
first two Value Selectors (1 & 2). The source for ‘tig in’
of the Trigger Divider is
the Pulse Generator
Figure 29 indicates the ‘wiring’ of the three
Value Selector user actors. The outputs of the
third Value Selector (3) are used to divide the
position data and effectively create a second
instance of a mesh group, dependent on the
setting of the parameters in the Value Selector
(1 & 2).
The source for ‘tig in’ of
The full schematic of the patch (figure 30) the third Value Selector
demonstrates mesh doubling of the fourth user actor is the Pulse
group in the 3DS file (the deformed plane). Generator The active outputs are
The Value Selector (1 & 2) parameters allow connected to a set of ‘out
the independent animation of two instances of min’ & ‘out max’ of the
Range Selector user actor
the mesh. constructed previously.

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.

Page 17 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018


Fig. 31 The use of a ‘FFGLGradient’ actor places colour
behind the particles and provides additional atmosphere
within the generated image.

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.

Page 18 Extending Isadora’s 3D Particles and 3D Model Particles, Bonemap 2018

You might also like