Index: /orxonox/trunk/src/lib/particles/particle_system.cc
===================================================================
--- /orxonox/trunk/src/lib/particles/particle_system.cc	(revision 4429)
+++ /orxonox/trunk/src/lib/particles/particle_system.cc	(revision 4430)
@@ -53,15 +53,7 @@
   this->setInheritSpeed(0);
   this->glID = NULL;
-  this->setRadius(1.0, 1.0, 0.0);
   this->setType(type, 1);
-  this->setColor(1.0,1.0,1.0,1.0, .5,.5,.5,.5, .0,.0,.0,.0);
-  this->setMass(1.0, 0.0);
+  //  this->setColor(1.0,1.0,1.0,1.0, .5,.5,.5,.5, .0,.0,.0,.0);
   ParticleEngine::getInstance()->addSystem(this);
-
-  radiusAnim.addEntry(0.0,5);
-
-  radiusAnim.addEntry(.80,3);
-
-  radiusAnim.addEntry(.5, 0);
 }
 
@@ -148,6 +140,4 @@
 }
 
-
-
 /**
    \brief how much of the speed from the ParticleEmitter should flow onto the ParticleSystem
@@ -178,24 +168,4 @@
 
 /**
-   \brief sets the radius of newly created particles
-*/
-void ParticleSystem::setRadius(float startRadius, float endRadius, float randomStartRadius, float randomEndRadius)
-{
-  this->startRadius = startRadius;
-  this->endRadius = endRadius;
-  this->randomStartRadius = randomStartRadius;
-  this->randomEndRadius = randomEndRadius;
-}
-
-/**
-   \brief sets the initial mass of any particle
-*/
-void ParticleSystem::setMass(float mass, float randomMass)
-{
-  this->initialMass = mass;
-  this->randomInitialMass = randomMass;
-}
-
-/**
    \brief sets the conserve Factor of newly created particles
 */
@@ -210,4 +180,30 @@
 }
 
+/////////////////////////////
+/* Per-Particle Attributes */
+/////////////////////////////
+/**
+   \brief sets a key in the radius-animation on a per-particle basis
+   \param lifeCycleTime the time (partilceLifeTime/particleAge) [0-1]
+   \param radius the radius at this position
+   \param randRadius the randRadius at this position
+*/
+void ParticleSystem::setRadius(float lifeCycleTime, float radius, float randRadius)
+{
+  this->radiusAnim.addEntry(lifeCycleTime, radius);
+  this->randRadiusAnim.addEntry(lifeCycleTime, randRadius);
+}
+
+/**
+   \brief sets a key in the mass-animation on a per-particle basis
+   \param lifeCycleTime the time (partilceLifeTime/particleAge) [0-1]
+   \param mass the mass at this position
+   \param randMass the randomMass at this position
+*/
+void ParticleSystem::setMass(float lifeCycleTime, float mass, float randMass)
+{
+  this->massAnim.addEntry(lifeCycleTime, mass);
+  this->randMassAnim.addEntry(lifeCycleTime, randMass);
+}
 
 /**
Index: /orxonox/trunk/src/lib/particles/particle_system.h
===================================================================
--- /orxonox/trunk/src/lib/particles/particle_system.h	(revision 4429)
+++ /orxonox/trunk/src/lib/particles/particle_system.h	(revision 4430)
@@ -74,12 +74,14 @@
   void setInheritSpeed(float value);
   void setLifeSpan(float lifeSpan, float randomLifeSpan = 0.0);
-  void setRadius(float startRadius, float endRadius,
-		 float randomStartRadius = 0.0, float randomEndRadius = 0.0);
   void setConserve(float conserve);
-  void setMass(float mass, float randomMass = 0.0);
 
+  /* Per-Particle-Attributes */
+  void setRadius(float lifeCycleTime, float radius, float randRadius = 0.0);
+  void setMass(float lifeCycleTime, float mass, float randMass = 0.0);
   void setColor(GLfloat br, GLfloat bg, GLfloat bb, GLfloat ba,
 		GLfloat mr, GLfloat mg, GLfloat mb, GLfloat ma,
 		GLfloat er, GLfloat eg, GLfloat eb, GLfloat ea);
+
+
 
   /** \returns the Type of the particles */
@@ -140,4 +142,8 @@
 
   QuickAnimation radiusAnim;
+  QuickAnimation randRadiusAnim;
+  QuickAnimation massAnim;
+  QuickAnimation randMassAnim;
+  QuickAnimation colorAnim[4];
 };
 
Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 4429)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 4430)
@@ -476,5 +476,7 @@
   system->setLifeSpan(1);
   system->setConserve(.8);
-  system->setRadius(4, 3, 1, 2);
+  system->setRadius(0.0, 1.0, .6);
+  system->setRadius(1.0, 0.0, .0);
+
   system->setColor(.5,0,0,.5, 1,1,0,1, 0,0,0,0);
 
