diff --git a/db.sqlite3 b/db.sqlite3
index 8db1a619382a48f53c27a90a51d809a2091ac1f2..e7914df3e2bbedfddc5f951f6789d3558ab5f351 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ
diff --git a/ping/templates/ping/play.html b/ping/templates/ping/play.html
index 2b9de00b064390b137da66fe1291e9c902256fd3..ebc8c51a6ebc4dbbc00dafe808576949405d06bf 100644
--- a/ping/templates/ping/play.html
+++ b/ping/templates/ping/play.html
@@ -9,6 +9,53 @@
   <title>Play - IOTAMAK</title>
   <meta name="viewport" content="width=device-width, initial-scale=1">
 
+  <script type="text/javascript">
+window.addEventListener('load', eventWindowLoaded, false);
+function eventWindowLoaded() {
+    canvasApp();
+
+}
+
+ function canvasApp() {
+    var metrics = {{metrics}};
+
+    var cycle = 0;
+
+    theCanvas = document.getElementById('canvasOne');
+    context = theCanvas.getContext('2d');
+
+    function erraseCanvas() {
+        context.clearRect(0,0,theCanvas.width,theCanvas.height);
+    }
+
+    function drawScreen () {
+        erraseCanvas();
+
+        var count = metrics[cycle].length;
+        for (let id_agent = 0; id_agent<count; id_agent++){
+          context.fillStyle = "#000000";
+          context.beginPath();
+              context.arc(metrics[cycle][id_agent][0],metrics[cycle][id_agent][1],15,0,Math.PI*2,true);
+          context.closePath();
+          context.fill();
+        }
+    }
+
+    function gameLoop() {
+          if (cycle < metrics.length) {
+           window.setTimeout(gameLoop, 20);
+           drawScreen();
+           cycle = cycle + 1 ;
+
+          }
+
+    }
+
+    gameLoop();
+}
+
+</script>
+
 </head>
 
 <body>
@@ -51,5 +98,9 @@
     <button type='submit'> Load</button>
   </form>
 
+<canvas id="canvasOne" width="500" height="500" style="border:1px solid #000000;">
+ Your browser does not support the HTML 5 Canvas.
+</canvas>
+
 </body>
 </html>
\ No newline at end of file
diff --git a/ping/views/play.py b/ping/views/play.py
index c7e0a72fbf80d7cb3f485ae85442bb10f1d632bc..60d8fbad96d73ddf2e1e31a8c5b32f09a3ffbdb6 100644
--- a/ping/views/play.py
+++ b/ping/views/play.py
@@ -7,7 +7,7 @@ from subprocess import Popen
 from time import sleep
 
 from django.conf import settings
-from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
 from django.template import loader
 from django.urls import reverse
 from iotAmak.tool.ssh_client import Cmd
@@ -40,10 +40,16 @@ def agent_metric(client, userdata, message) -> None:
     metric = Metrics(experiment_name=exp.name, cycle=exp.cycle, agent_id=agent_id, metrics=result)
     metric.save()
 
+def cycle_done(client, userdata, message) -> None:
+    cur_exp = CurrentExperiment.objects.all()[0]
+    cur_exp.cycle += 1
+    cur_exp.save()
+
 
 def update_nbr_agent(client, userdata, message) -> None:
     exp = CurrentExperiment.objects.all()[0]
     subscribe(client, "agent/"+str(exp.nbr_agent)+"/metric", agent_metric)
+    subscribe(client, "scheduler/cycledone", cycle_done)
     exp.nbr_agent += 1
     exp.save()
 
@@ -101,10 +107,19 @@ def experiment_start(request):
     p3 = Popen([sys.executable, experiment_path+'/env.py', broker_ip])
     return HttpResponseRedirect(reverse('ping:play'))
 
-
 def main_play(request):
+    cycle = CurrentExperiment.objects.all()[0].cycle
+    metrics = []
+    for i in range(cycle):
+        # get all the agent 0 metrics
+        raw_context = Metrics.objects.filter(cycle=i)
+
+        cycle_metrics = [[metric.metrics.get("x"), metric.metrics.get("y")] for metric in raw_context]
+
+        metrics.append(cycle_metrics)
+
     template = loader.get_template('ping/play.html')
-    context = {}
+    context = {"metrics": metrics}
     return HttpResponse(template.render(context, request))
 
 
diff --git a/uploads/current_experiment/ant/agent.py b/uploads/current_experiment/ant/agent.py
index 5accea62e91b4885d8fb8b4acc49424b2ab0ff02..80f5688cfe9fe0dee42baf3c1331b025c19e6c77 100644
--- a/uploads/current_experiment/ant/agent.py
+++ b/uploads/current_experiment/ant/agent.py
@@ -7,8 +7,8 @@ from iotAmak.agent import Agent
 class Ant(Agent):
 
     def __init__(self, identifier: int, broker_ip: str):
-        self.x = 0
-        self.y = 0
+        self.x = 250
+        self.y = 250
         super().__init__(identifier, broker_ip)
 
     def on_act(self) -> None:
diff --git a/uploads/media/ant_XUpI6l7.zip b/uploads/media/ant_XUpI6l7.zip
new file mode 100644
index 0000000000000000000000000000000000000000..f2376c7643fd1a04ba142f07ab3fdf329abd0224
Binary files /dev/null and b/uploads/media/ant_XUpI6l7.zip differ