diff --git a/data/Info.txt b/data/Info.txt
new file mode 100644
index 0000000000000000000000000000000000000000..842a68b7701cc76b5765d2ea7c92b9f656f5b83b
--- /dev/null
+++ b/data/Info.txt
@@ -0,0 +1,40 @@
+
+	Entrées
+
+		- Marnage
+		- HSI (marnage, saison)
+		- Rayon max déplacement (saison, phase jour)
+
+			Initialisations
+				- Lac (marnage, HSI)
+				- Population (nbr individus, position initiale, sexe...)
+				- Date début de la simulation
+				- Horloge interne par individus
+
+	Sorties
+
+		- Déplacements de chaque individus (historique : id_maille, HSI, saison, phase journée...)
+		- Distances parcourue (par jour, heure, saison...)
+		- Angles de déplacement
+
+
+
+	Process
+
+		1	- Temps		phase journée : aube, jour, crep, nuit
+						saison : période de reproduction ?
+
+		2	- Marnage	modification HSI
+
+		Brochet
+
+		3	- Ordre de déplacements aléatoire
+
+		4	- Calcul des mailles accessibles (Rayon max déplacement, marnage, HSI...)	|
+																						|
+		5	- Mouvement (Période repro ?, phase jour)									|
+
+		6	- Enregistrement des positions de chaque individu + HSI, id_maille, saison, phase jour...
+		
+					Calcul =>	Distance parcourue (saison, phase jour, marnage...)
+								Angles de déplacements
diff --git a/data/input/fishLight.xml b/data/input/fishLight.xml
index 9c9e557bf6953045061cf4bfe5b7854e61db8d54..4730e91f47ba53faf16ffb9113d5400040f28801 100644
--- a/data/input/fishLight.xml
+++ b/data/input/fishLight.xml
@@ -7,7 +7,7 @@
 		<processes>
 			<processesAtBegin>
 				<pikelake.pikes.PikesPopulateProcess>
-					<initialNumberOfPikes>20</initialNumberOfPikes>
+					<initialNumberOfPikes>4</initialNumberOfPikes>
 				</pikelake.pikes.PikesPopulateProcess>
 			</processesAtBegin>
 			<processesEachStep>
diff --git a/src/main/java/pikelake/Grid.java b/src/main/java/pikelake/Grid.java
index d6370fe9ccf98316b2504258920f360b78bd4020..785f3df195313c37bd5f1aba4a51700c8339c7b3 100644
--- a/src/main/java/pikelake/Grid.java
+++ b/src/main/java/pikelake/Grid.java
@@ -22,21 +22,20 @@ public class Grid extends Grid2D<Cell, Individual> {
 
     @InitTransientParameters
     public void initTransientParameters(Pilot pilot) throws FileNotFoundException {
-    	//System.out.println("Init Grid");
-    	
+
         int idLigne = 0;
         double hsiMoy = 0, hsiStd = 0;
-
         StringTokenizer sLigne;
+
     	// TODO empty grid
         grid = new Cell[gridWidth * gridHeight];
-        
+
     	// Initialisation de toutes les mailles
-        int cptCell = 1;
+        int cptCell = 0;
     	while (cptCell != gridWidth * gridHeight) {
     		grid[cptCell] = new Cell(cptCell, -1);
     		cptCell = cptCell + 1;
- 	    }        
+ 	    }
         cptCell = 0;
         
         // Lecture fichier contenant les HSI de toutes les mailles
diff --git a/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java b/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java
index 80782c59d1a3b414d14a194ed0eb253af843ddea..912686ea1869f451a9b23b6900a460dc317046ed 100644
--- a/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java
+++ b/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java
@@ -8,7 +8,11 @@ import fr.cemagref.ohoui.annotations.Description;
 import fr.cemagref.ohoui.filters.NoTransientField;
 import fr.cemagref.ohoui.swing.OhOUI;
 import fr.cemagref.ohoui.swing.OhOUIDialog;
+import fr.cemagref.simaqualife.kernel.AquaNism;
+import fr.cemagref.simaqualife.kernel.AquaNismsGroup;
+
 import java.awt.Color;
+import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
@@ -16,6 +20,8 @@ import java.awt.Shape;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -29,8 +35,11 @@ import org.geotools.data.FileDataStoreFinder;
 import org.geotools.data.simple.SimpleFeatureIterator;
 import org.geotools.data.simple.SimpleFeatureSource;
 
+import com.itextpdf.awt.geom.Rectangle;
 import com.vividsolutions.jts.geom.Coordinate;
 import com.vividsolutions.jts.geom.MultiPolygon;
+
+import pikelake.Grid;
 import pikelake.pikes.Pike;
 import pikelake.pikes.PikesGroup;
 
@@ -93,8 +102,6 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
 
 
     public void init() {
-    	//System.out.println("Init Shape");
-    	
         display = new DisplayComponent();
         display.setVisible(false);
         display.setDoubleBuffered(true);
@@ -123,7 +130,6 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-
         // original dimension storage 
         this.shapeOriginalWidth = this.generalPath.getBounds().getWidth();
         this.shapeOriginalHeight = this.generalPath.getBounds().getHeight();
@@ -145,8 +151,7 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
         groupsColors.add(Color.GRAY);
         display.repaint();
         display.setVisible(true);
-        
-        //System.out.println("Fin IS");
+
     }
 
     public void disable() {
@@ -159,10 +164,10 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
     }
 
     public void valueChanged(ObservablesHandler clObservable, Object instance, long t) {
-        if (groups == null && instance != null) {
-            groups.add((PikesGroup) instance);
+        if (groups.isEmpty() && instance != null) {
+           	groups.add((PikesGroup) instance);
         }
-        System.out.println(groups.isEmpty());
+        
         display.repaint();      
         display.setVisible(true);     
     }
@@ -212,10 +217,7 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
                     rescaleFactorWithOriginal = displayHeightBak / shapeOriginalHeight;
                 }
                 // rescale the generalPath
-                generalPath.transform(
-                        AffineTransform.getScaleInstance(rescaleFactor,rescaleFactor)
-                );
-
+                generalPath.transform (AffineTransform.getScaleInstance (rescaleFactor, rescaleFactor));
             }           
             // Draw Background
             g.setColor(bgColor);
@@ -225,30 +227,38 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
             g2d.fill(generalPath);
             //g.setColor(aquanismsColor);
             Iterator<Color> colorsIterator = groupsColors.iterator();
-            
+
             
             // Draw aquanisms
-            //System.out.println(groups.isEmpty());
-            if(groups.isEmpty()) {
-            	//PikesGroup pikeGroup = PikesGroup.this.getAquaNismsList(); 
-            	//groups.add((PikesGroup) ((AquaNismsGroup<Pike, Grid>) groups).getAquaNismsList());
-            	//groups.add(PikesGroup.class.getAquaNismsList() );
-            	//groups.add(PikesGroup.getAquaNismsList());
-            }
+            g.setColor(pikeColor);
+            double widthMax = 0, heightMax = 0;
+            double xPike = 0, yPike = 0, xPike2 = 0, yPike2 = 0;
+            widthMax = generalPath.getBounds().getWidth();
+            heightMax = generalPath.getBounds().getHeight();
+            
+            //g2d.fillRect(widthMax, heightMax, 1, 1);
+            //System.out.println(generalPath.getBounds2D());
+            //System.out.println(widthMax);
+            //System.out.println(heightMax);
+            
             for (PikesGroup group : groups) {
-                if (colorsIterator.hasNext()) {
-                    g.setColor(colorsIterator.next());
-                    
-                }
-                for (Pike aquanism : group.getAquaNismsList()) {
-                    // TODO get the cell position
-                	System.out.println(aquanism.getPosition());
-                	//Rectangle rect = new Rectangle((int) ((aquanism.getPosition().getX() + repositioningTranslateX) * rescaleFactorWithOriginal),
-                    //        (int) (generalPath.getBounds().getHeight() /*flip vertically*/ - (aquanism.getPosition().getY() + repositioningTranslateY) * rescaleFactorWithOriginal),
-                    //        sizeOfDisplayedIndividuals, sizeOfDisplayedIndividuals);
-                    // draw the individuals after repositioning and rescaling the position
-                    //g2d.fill(rect);
-                }
+                if (colorsIterator.hasNext()) 
+                	g.setColor(colorsIterator.next());
+                for (Pike aquanism : group.getAquaNismsList() ) {
+                	// Calcul de la maille occupée sur une grille de 216*244
+                	yPike = (aquanism.getPosition().getIndex() / 216);
+                	xPike = (aquanism.getPosition().getIndex() - (yPike * 216));
+                	// Calcul dela maille occupée sur la grille redimensionnee (dynamique)
+                	xPike2 = xPike * (widthMax / 216);
+                	yPike2 = yPike * (heightMax / 244);
+                	// Affichage de chaque individu
+                	g2d.drawRect((int) xPike2, (int) yPike2, 1, 1);
+                	
+                	//System.out.println(aquanism.getPosition().getIndex());
+                	//System.out.println(" X = " + xPike + " Y = " + yPike);
+                	//System.out.println(" X = " + xPike2 + " Y = " + yPike2 + "\n");
+ 
+                } 
             }
         }
     }