diff --git a/interface/src/render_svg.cpp b/interface/src/render_svg.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c3e89d94a6e36784b63f6200022dcbea9af62bb6
--- /dev/null
+++ b/interface/src/render_svg.cpp
@@ -0,0 +1,57 @@
+#include "render_svg.hpp"
+
+
+
+ void Svg::rectangle()
+ {
+ sprintf(_conteneur,"",_w, _h, _x,_y,_r,_g,_b);
+ afficher(_conteneur);
+ }
+
+ void Svg::afficher(char* s)
+ {
+ printf(s);
+ }
+
+ void Svg::init()
+ {
+ char * entete = "\n\n";
+ afficher(end_of_document);
+ }
+
+ void Svg::draw_container(const Element_pos x, const Element_pos y, const Element_pos w, const Element_pos h)
+ {
+ _r=47;
+ _g=54;
+ _b=153;
+ _w=(unsigned long)w;
+ _h=(unsigned long)h;
+ _x=(unsigned long)x;
+ _y=(unsigned long)y;
+ rectangle();
+
+
+ }
+
+ void Svg::draw_state(const Element_pos start , const Element_pos end, const Element_count level, const Element_col r, const Element_col g, const Element_col b)
+ {
+
+
+ _r=(unsigned char)r;
+ _g=(unsigned char)g;
+ _b=(unsigned char)b;
+ _w=(unsigned long)(end-start);
+ _h=(unsigned long)100;
+ _x=(unsigned long)start;
+ _y=(unsigned long)50;
+ rectangle();
+
+
+ }
diff --git a/interface/src/render_svg.hpp b/interface/src/render_svg.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..b47a0ae966d104c61dfd1d424c772547c717e8a1
--- /dev/null
+++ b/interface/src/render_svg.hpp
@@ -0,0 +1,56 @@
+#ifndef RENDER_SGV
+#define RENDER_SVG
+
+#include
+
+typedef long Element_count ;
+typedef double Element_pos;
+typedef double Element_col;
+
+
+class Svg{
+
+
+ private:
+
+ char _conteneur[2048];
+ unsigned char _r,_g,_b;
+ unsigned long _x,_y,_w,_h;
+
+ void afficher(char*s);
+ void rectangle();
+
+ public:
+ /*!
+ * \brief SVG header buiding
+ */
+ void init();
+
+ /*!
+ * \brief SVG bottom file buiding
+ */
+ void end();
+
+
+ /*!
+ * \brief Draw a container according to the parameters
+ * \param x the x position of the container
+ * \param y the y position of the container
+ * \param w the width of the container
+ * \param h the height of the container
+ */
+ void draw_container(const Element_pos x, const Element_pos y, const Element_pos w, const Element_pos h) ;
+
+ /*!
+ * \brief Draw a state of the trace.
+ * \param r the red color rate of the state.
+ * \param g the green color rate of the state.
+ * \param b the blue color rate of the state.
+ * \param start the beginning time of the state.
+ * \param end the ending time of the state.
+ * \param level refer to the container which state belongs to.
+ */
+ void draw_state(const Element_pos start , const Element_pos end, const Element_count level, const Element_col r, const Element_col g, const Element_col b) ;
+ };
+
+#endif// RENDER_SGV
diff --git a/interface/tests/makefile b/interface/tests/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..4b11b4e7dce95f67d75402365997dd4cc8af2bfe
--- /dev/null
+++ b/interface/tests/makefile
@@ -0,0 +1,8 @@
+test_svg.o: test_svg.cpp
+ g++ -c -g -Wall test_svg.cpp -o test_svg.o
+
+render_svg.o: ../src/render_svg.cpp ../src/render_svg.hpp
+ g++ -c -g -Wall ../src/render_svg.cpp -o render_svg.o
+
+test_svg: test_svg.o render_svg.o
+ g++ -g -Wall render_svg.o test_svg.o -o test_svg
\ No newline at end of file
diff --git a/interface/tests/test_svg.cpp b/interface/tests/test_svg.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d73412cfb4a323a61ed5578dd1cef7d0f966d320
--- /dev/null
+++ b/interface/tests/test_svg.cpp
@@ -0,0 +1,17 @@
+#include
+#include "../src/render_svg.hpp"
+using namespace std;
+
+int main()
+{
+
+
+ Svg s;
+ s.init();
+ s.draw_container(0,100,100,100);
+ s.draw_state(0 , 150, 0, 50,50,50);
+ s.draw_state(400, 750, 0, 0xff,0xcc,33);
+ s.end();
+
+ return 0;
+}