FractalNet
Home Software Music Other
Overview   Overview
Guitar Chord Explorer   GCE
Guitar Chord Explorer - Home       Home
Guitar Chord Explorer - Instructions       Instructions
Guitar Chord Explorer - User comments       User comments
Guitar Chord Explorer - Links       Links
Guitar Chord Explorer - Version 2       Version 2
FractalNet   FractalNet
Particle System Designer   PSD (Second Life)
Marble Challenge   Marble Challenge
ASCIIroids   ASCIIroids
Gravity Bubbles   Gravity Bubbles
EcoSim   EcoSim
Cosmic Dust   Cosmic Dust
LandMesh   LandMesh
Imagencrypter   Imagencrypter
TrainMapper   TrainMapper
Foxy Detector   Foxy Detector
MacDiff   MacDiff
Asteroid Belt   Asteroid Belt
Matrix Attack   Matrix Attack
Solar Swarm   Solar Swarm
Tools   Tools
Names :-)   Names :-)
Particle System Designer
(Second Life)
Free!

Particle System Designer

My avatar standing next to my Particle System Designer in Second Life

For a few weeks at the beginning of 2007, I was a regular participant in the virtual world of Second Life.  While I was there, I learnt the basics of LSL, the scripting language used to control and interact with objects in Second Life.

Amongst other features of the virtual world, an object can be given a particle system to create animated visual effects that look like smoke, steam, dust, explosions, flames, sparks, fountains, lasers, and many other things.  These particle systems are quite difficult to design unassisted (they are created with a rather complex llParticleSystem() function call), so I decided to build myself a virtual machine to provide assistance.

My Particle System Designer (PSD) consists of around 2,400 lines of LSL code, 49 prims (primitive construction objects, such as spheres and cylinders) and some high-resolution textures (created in Adobe Photoshop and uploaded into Second Life).  It’s operated by “touching” the buttons on the front of the machine, and typing in numeric values when necessary.  The different parameters of the particle system are grouped into five categories for clarity (pattern, appearance, creation, behaviour and target), and the buttons change colour to indicate which parameters are active, inactive and selected.

I created a few demonstration particle systems which are included with the PSD, and are activated by touching the LOAD DEMO button:

Arch Fusion
Arch Fusion
Magnetic Photons Star Cluster
Magnetic Photons Star Cluster
Twinkling Sphere
Twinkling Sphere

Once a user has designed a particle system, touching the GENERATE button will output the necessary LSL code, which the user can copy & paste to use in their own objects.  Comprehensive help is available by touching the HELP button.

As well as being able to adjust every parameter of the particle system, the PSD also features a rotating arm, which is activated by touching the ROTATE button.  This is useful for designing particle systems which leave a trail of particles behind as the emitting object moves through space.  The screenshot below illustrates the rotating arm in motion, and the particles are being attracted to the sphere on the opposite pole (this has been selected as the “target” object):

Rotation and target
Magnetic Photons demo, with rotation and target

Note: I don’t use my real name within Second Life, which is why you’ll see my avatar’s name on the PSD instead.


Video

This demo video shows the PSD in action within Second Life.  It shows the built-in demo particle systems, and then shows how to change the various parameters (including Pattern, Angle Begin, Angle End, Burst Part Count, Start Scale, Follow Velocity, Burst Radius, Target Pos, Interp Color and Part Max Age) to design your own particle system.

YouTube fullscreen button Click on this button in
the YouTube player to
watch the video fullscreen.
Watch this video on YouTube  →
Watch this video on Vimeo  →


Script design

The following diagram illustrates how the various LSL scripts in the machine interact with each other:

Particle System Designer diagram

Drawn using OmniGraffle, a very cool program for drawing diagrams :-)

The scripts communicate using llMessageLinked(), and each script and prim has a unique ID number to identify it.  To pass particle system data between scripts, I modified this example list conversion code.

Feedback is provided to the user via instant messages (IMs) sent using llInstantMessage().  Normally, only one message can be sent every 2 seconds (this is an LSL restriction), but by having 8 separate IM scripts controlled by an IM manager, the overall delay time between IMs can be reduced by a factor of 8 (ie. 0.25 seconds between IMs).


Help notecard 

The PSD comes with a notecard containing the following help and instructions.

What is this Particle System Designer?
In Second Life, you can use particle systems to create visual effects that look like smoke, steam, dust, explosions, flames, sparks, fountains, lasers, stars, and many other things.  The Particle System Designer (PSD) is a machine to help you design your own particle systems.  It’s also a fun toy to play with Smiley

I don’t know anything about particles!  Where can I learn?
You can probably learn quite a lot about how particles work by simply playing with the PSD, but to get a good understanding of them, try visiting the Particle Laboratory.  It’s a really fun interactive museum with loads of exhibits, and it does a great job of explaining and illustrating how particles work.  Check it out!

How do I use this machine?
Firstly, make sure you’re not set to Busy mode.  (If you are, the PSD won’t be able to communicate with you!)  Touch the buttons on the base of the PSD to change the various settings.  If you want to change one of the numeric settings, you’ll be asked to enter a new value using Chat.  The PSD has many demonstration particle systems built in.  To load one, simply touch the LOAD DEMO button and choose one from the list.

Why do the buttons change colours?
To show you which settings are enabled or unavailable.  In general:
Blue Active / enabled
Red Unavailable / disabled
Green Currently waiting for you to supply some input using Chat, if you wish to

What do the “Pattern” settings do?
These specify the pattern in which new particles are emitted.
Drop Particles are created at the emitter with no initial speed
Explode Particles explode in all directions
Angle Particles are emitted in a 2D (flat) fan-shaped spray, which can be partially hollow
Angle Cone Particles are emitted in a 3D cone, which can be partially hollow
Angle Cone Empty Second Life doesn’t display this one properly at the moment Sad smiley
Angle Begin The starting angle for the “Angle” patterns, measured downwards from “straight up”
Angle End The ending angle for the “Angle” patterns, measured downwards from “straight up”

What do the “Appearance” settings do?
These affect what the particles look like.
Texture The UUID key of the texture to be used by the particles
Start Color The colour of the particles when they’re first created
Start Alpha The transparency of the particles when they’re first created
Interp Color Should particles change their colour and transparency during their lifetime?
End Color The colour of the particles just before they die
End Alpha The transparency of the particles just before they die
Start Scale The size of the particles when they’re first created
Interp Scale Should particles change their size during their lifetime?
End Scale The size of the particles just before they die
Emissive Should the particles be self-lit (“full bright”), or should they only reflect light?
Follow Velocity Should the particles rotate to point in the direction they’re travelling?

What do the “Creation” settings do?
These affect the way in which new particles are created.
Src Max Age The duration for new particles to be emitted (in seconds)
Burst Rate The delay between each “burst” of particles (in seconds)
Burst Part Count The number of particles to create in each “burst”
Burst Radius The distance at which particles are created, measured from the centre of the emitter
Burst Speed Min The minimum speed at which particles are emitted
Burst Speed Max The maximum speed at which particles are emitted
Omega The amount to rotate the particle emitter in-between each “burst”

What do the “Behaviour” settings do?
These affect the way in which particles behave after they’ve been created.
Part Max Age The lifetime of each particle (in seconds)
Accel The constant acceleration applied to each particle throughout its life
Follow Src If the particle emitter moves, should the particles move too?
Bounce Should particles bounce if they fall to the same height as the particle emitter?
Wind Should the particles be affected by the wind in the sim?

What do the “Target” settings do?
These control whether the particles “home in” on a specific target object.
Target Pos Should the particles gradually “home in” on a target object?
Target Linear Should the particles move smoothly to the target object in a straight line?
Emitter Use the particle emitter as the target object
Other Sphere Use the glass sphere on the right-hand pole as the target object

What’s the ROTATE button for?
This makes the particle emitter rotate in a circle.  This is useful for seeing the effect of the Follow Src setting, or the Drop pattern.  It can also be helpful if you’re designing a particle system which uses a target object. Unfortunately, the rotation isn’t very smooth (because Second Life doesn’t allow hierarchies of linked prims, so I can’t make a subset of prims rotate smoothly with llTargetOmega).  Sorry about that Sad smiley

I’ve designed a nice particle system - how can I use it in my own objects?
Simply touch the GENERATE button, and you’ll see several lines of Chat appear.  This is the LSL script to generate your particle system.  Open the Chat History window, and copy all the lines from llParticleSystem([ to ]);.  You can now paste this into a script in one of your objects.  You’ll need to delete PSD: from the beginning of each line (and the Chat timestamp too, if you’ve got this switched on in your SL preferences).  It would be better if the PSD could generate a Notecard containing the required LSL script, but unfortunately Second Life doesn’t allow this Sad smiley

Anything else I need to know?
• Whenever the PSD outputs some Chat (eg. when you touch the GENERATE button), this is actually a form of private Instant Messaging, and no-one except yourself can hear it.
• Whenever you supply an input to the PSD using Chat, this is normal public Chat and everyone nearby can hear it.
• If the PSD doesn’t seem to be behaving correctly (eg. taking a long time to react to your input), you can completely reset it, by touching the main glass sphere which emits the particles (on the end of the rotating arm).

Version 1.0 – Released Feb 2007
All object textures, design and scripts © 2007 Michael Hogg
Except the freely available Particle Laboratory demo particle systems, created by Jopsy Pendragon


Nearby Avatar Detector

Nearby Avatar DetectorAnother of my Second Life machines is my Nearby Avatar Detector (NAD) – a small wooden “pebble” containing a short LSL script, which can be attached to a user’s HUD.  Touching the NAD will cause it to scan the local area for other people (avatars), and list them in order of distance away from the user (closest first).  In addition, it will automatically report the nearest person every 2 minutes.

The screenshot below shows a sample output produced when the NAD is touched:

Nearby Avatar Detector output

The NAD uses llSensor() to scan for avatars within a radius of 96m (the maximum radius possible).  llDetectedName() and llDetectedPos() are then used to determine the name and relative position of each detected avatar.  llGetRot() is used to calculate the direction of each avatar relative to the user (for example, 16° right, or 34° left).  llGetAgentInfo() obtains more information about each avatar’s state, including: Away, Busy, Fly, In air, Crouch, Sit, Walk, Always run, Typing, Mouselook, On object, Atts (attachments) and LSL atts (scripted attachments).



Since I no longer enter Second Life very often, and I wouldn’t expect to make much real-world profit from my PSD and NAD, I’m making them freely available to all Second Life users.  If you would like a copy of either machine, please contact me, and I’ll meet you inside Second Life!

However, donations are always very gratefully received, since I have spent countless hours of my spare time designing and testing my virtual machines.  If you would like to donate, then please click on the PayPal button below, and choose the amount to donate:


Many thanks in advance.


Comments Automatic country lookup for comments powered by MaxMind GeoLite Country

Wayha Skytower
    3 Jan 2009
    United States
I am very interested in the particle system, I been messing with particles without much sucess, been wanting to make a fountian with spray out of particles, please help.
Michael Hogg
    3 Jan 2009
Hi Wayha! I've just sent you a copy of my Particle System Designer, hope you find it helpful.
Wolfy Tobias
    24 Feb 2009
    United States
I, like Wayha, am very interested in both of these. Actually wondering if I could get them as well please? Ever think about setting up an SLX account and distributing them that way? I looked and didn't see this on there, but would love both of these if you still are offering. Thank you so much.
Braless Bracken
    26 Feb 2009
    United Kingdom
Hi Michael, any chance you could send me a copy of your particle system designer? It'd be much appreciated, thanks! :-)
Michael Hogg
    1 Mar 2009
Hey Wolfy and Braless! I've now sent you the machine(s) you requested - enjoy!
Ewer Short
    12 Mar 2009
    Canada
Hi, Michael. I would love to have a copy of the PSD. Particles have always baffled me, so any opportunity to learn from what you have done here would be so nice. Thank you muchly if you can :)) IM me online or email me at ewershort@live.ca
Ewer Short
    15 Mar 2009
    Canada
Hi, Michael!!! Sorry to have missed you, but I did get your delivery :))) Thank you so very very much, and I am sorry for not being there :( I was AFK... bit ill in RL these days :( anyway, thank you, and I will definitely be trying it out within minutes :)))) ((((HUGGGIES from SL))))
Michael Hogg
    17 Mar 2009
Hi Ewer, glad to hear you received it OK! :)
Eyal Laryukov
    24 May 2009
    Israel
I'd like to have that "machine" too, thanks.

anywhere in game that I could get it?

mail:
eyal_lev@walla.co.il
Michael Hogg
    26 May 2009
Hey Eyal, I've just sent you a copy of the PSD!
kip hanly
    3 Jun 2009
    United States
I am teaching a summer seminar in LSL. I would like to meet you and get a copy of your designer, to demonstrate the particle system to the class...

The NAD would be fun to look at since radar is one of the topics we are looking at.

I cannot find Michael Hogg in a people search of SL.

Kip Hanly (avatar name)
Michael Hogg
    10 Jun 2009
Hi Kip! I've now sent you the PSD and NAD, hope you find them useful.
Gandalf Whinstanes
    25 Jun 2009
    United States
I've been trying to learn paticles as well, and would love to get a copy of your machine. Is there a place in world I can go?
Michael Hogg
    29 Jun 2009
I've just sent you my PSD, Gandalf!
Mathews Beaumont
    5 Jul 2009
    Canada
Hi, Michael. I'd love to have a copy of your machine. I've been working with scripts for a while and it would help with the testing immensely.
Michael Hogg
    9 Jul 2009
Hey Mathews, just sent you my PSD, enjoy!
Bardiel Nubalo
    25 Jul 2009
    Canada
Hi, i'd love to have copies of both devices, i've been doing soe experimenting with particle scripts, but have found many in-world tools to not be very intuitive, or too costly
Michael Hogg
    7 Aug 2009
Hi Bardiel, you should now have copies of the PSD and NAD in your inventory!
Roswell Ferraris
    12 Aug 2009
    Netherlands
Hello Michael,

I would love a copy of your PSD machine. I am in inworld struggling with the creating of particle scripts on my own allready for weeks now, and its driving me crazy! Your invention would be real helpfull. thank you in advance.! Best Regards, Roswell
Michael Hogg
    15 Aug 2009
Just sent you my PSD, Roswell, hope it helps you with your particle scripts.
Garth Lannock
    30 Sep 2009
    Netherlands
Hello Michael,

Ii love to have a copy from your PSD Machine. We will make particles when you type or walk, can your machine make these?
I hope so.
Thanks in advance.
Michael Hogg
    3 Oct 2009
Hi Garth! I've just sent you a copy of my PSD. Once you've designed a particle system, the PSD will show you the LSL code needed to generate it, and you can then write your own LSL code to activate that particle system when a particular event happens.
Thord Karu
    7 Oct 2009
    United States
Hey Michael, I am trying to learn a bit more about particles, stumbled onto your website, your particle system sounds amazing. I was wondering if there was any possible way to still get a copy of it. Thanks in advance Michael.
Michael Hogg
    10 Oct 2009
No problem Thord, I've just sent you my PSD - enjoy!
Pastel Indigo
    20 Nov 2009
    United Kingdom
Hi Michael

Your PSD looks like a fantastic piece of work! I would love a copy to play with if that is possible?

Hugs
Pastel
Michael Hogg
    22 Nov 2009
Hey Pastel, I've just sent you a copy!
Pepe Luckstone
    24 Nov 2009
    Portugal
Hi Michael,

Can I have a copy of PSD?

Pepe
Michael Hogg
    29 Nov 2009
Hi Pepe! You should find my PSD in your inventory.
Eleanora Newell
    2 Dec 2009
    United States
Hello, Michael,

I just ran across this. I would love to have a copy of PSD. Also, is it possible to do a cone of stars in the shape of a cone shape like a Christmas Tree is? I've been playing with settings and have been able to do all but this.
Michael Hogg
    6 Dec 2009
Hi Eleanora! I'm sending you a copy of my PSD, hope you find it helpful.

I don't think it's possible to make a "Christmas tree" cone of stationary particles (I may be wrong!). This is the best I can do - a cone of slowly descending particles:

llParticleSystem([
PSYS_PART_FLAGS, 0 | PSYS_PART_EMISSIVE_MASK,
PSYS_SRC_TEXTURE, "",
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_PART_START_COLOR, <1.00000, 1.00000, 1.00000>,
PSYS_PART_START_ALPHA, 1.000000,
PSYS_PART_START_SCALE, <0.10000, 0.10000, 0.00000>,
PSYS_SRC_MAX_AGE, 0.000000,
PSYS_PART_MAX_AGE, 15.000000,
PSYS_SRC_BURST_RATE, 0.020000,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RADIUS, 0.000000,
PSYS_SRC_BURST_SPEED_MIN, 0.200000, PSYS_SRC_BURST_SPEED_MAX, 0.200000,
PSYS_SRC_ANGLE_BEGIN, 2.705260, PSYS_SRC_ANGLE_END, 2.705260,
PSYS_SRC_ACCEL, <0.00000, 0.00000, 0.00000>,
PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>
]);

Hope that helps!
Recardo Rodinia
    7 Dec 2009
    United States
Michael, may I please have a copy of your PSD? I have projects in mind that could use particles generated by your creation. A creation which I find quite fascinating.
I have searched endlessly looking for such a thing and been going buggy trying to make the LL scripts do what I want them to. :-)
Evachangin Serendipity
    8 Dec 2009
    Australia
I would really appreciate your PSD .... thnx so much for your generosity.
DT Zanzibar
    8 Dec 2009
    Australia
WOW & PLEASE & MANY THANKS (PSD & NAD as well, if you'd be so kind)
Sterling McCullough
    8 Dec 2009
    United States
WOW!! This is a great machine, you do wonderful work and you make it look so easy in the video, but then again you did make it right...lol, Hope to see you inworld sometime, so if you are even in look me up!
Mabe Pearl
    8 Dec 2009
    Canada
Hello Michael - Just heard about this cool item and would appreciate receiving your PSD as well. Thank you kindly. :-)
Supremius Maximus
    8 Dec 2009
    United States
Excellent job, Michael! I'd love to have a copy of the PSD too, please.
Michael Hogg
    9 Dec 2009
Hi guys! Many thanks for all your comments. I've now sent you each a copy of my PSD - enjoy!
Bad Fluffy
    15 Dec 2009
    United States
This is superb, I know many people enjoy being able to see visual representations of their particle project and be able to modify and tweak it like that.

I'd love to have a copy of your PSD to play around with it if possible, please.
Michael Hogg
    19 Dec 2009
Just sent you my PSD, Bad Fluffy, hope you have fun with it!
Buckaroo Benoir
    13 Jan 2010
    United States
Hi Michael, if you still have them available I'd love a copy of the machine.
Michael Hogg
    15 Jan 2010
Yes Buckaroo, my PSD is still available, just sent you a copy!
Buckaroo Benoir
    15 Jan 2010
    United States
Hi Michael, got the system, but I get syntax errors every time I try to use the scripts generated. Just for curiosity's sake I tried the one listed above for the Christmas Tree cone and got it with that one as well. Sorry, but I lost your in-world name. Could you let me know if I'm doing something wrong, or if LL has changed how they do scripts?
Michael Hogg
    16 Jan 2010
Hi Buckaroo, sorry to hear you're having problems.

The Christmas tree code above seems to work OK for me. Try creating a new object with a new script, and paste the Christmas tree llParticleSystem() code into the touch_start() handler (see this example). Then when you touch the object, it will start the particle system.

When copying & pasting scripts generated by my machine, remember to remove the timestamp and "PSD:" from the beginning of each line, as explained in the help notecard. For example, on a line like this:

[23:48] PSD: llParticleSystem([

remove the timestamp and "PSD:" to just leave:

llParticleSystem([

Hope that helps!
Alyx Heron (SL name)
    22 Feb 2010
    United Kingdom
This sounds JUST what I am looking for, please can I join the queue of people who would like a copy? Happy to give a donation to charity or something?
Michael Hogg
    25 Feb 2010
Hey Alyx! You should find my PSD in your inventory. A donation to me (using the button above) or to a charity would be awesome :)
Oddprofessor Snoodle
    12 Mar 2010
    United States
I too would very much appreciate a copy of your PSD; It looks like the answer to a prayer!
Michael Hogg
    14 Mar 2010
Hi Oddprofessor (great name!) Just sent you a copy, hope you find it useful.
WraithWire Unplugged (SL Name)
    20 Apr 2010
    United States
I would be very interested in the PSD as well. I recently got into particle effects and have found them to be a lot of fun. Hell of a learning curve, but lots of fun.
Michael Hogg
    22 Apr 2010
Just sent you my PSD, WraithWire - have fun!
JED Dastardly
    13 Jun 2010
    Canada
hey there Michael
i just happen to come across this
is the PSD still available?
looks great

thanks in advance

JED
Michael Hogg
    13 Jun 2010
Hey JED, check your inventory for a copy of the PSD!


Add a comment 

Name (optional)
Copy the security code above
into the box below:



The security code is a CAPTCHA to prevent automated software from posting large amounts of spam comments (I get about 22 spam comments for every 1 genuine comment).
Comment
No HTML or BBCode please
Contact me  –  Page last updated on 7th February 2010  –  Website hosted by 5quidhost (highly recommended!)
Michael Hogg