diff --git a/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/models/chaos/ChaosCanvas.java b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/models/chaos/ChaosCanvas.java
new file mode 100644
index 0000000000000000000000000000000000000000..74871d0179ca88a959c54fea14986d2b54949548
--- /dev/null
+++ b/src/main/java/edu/ntnu/idatt2003/mappevurderingprog2/models/chaos/ChaosCanvas.java
@@ -0,0 +1,49 @@
+package edu.ntnu.idatt2003.mappevurderingprog2.models.chaos;
+
+import edu.ntnu.idatt2003.mappevurderingprog2.models.AffineTransform2D;
+import edu.ntnu.idatt2003.mappevurderingprog2.models.Vector2D;
+
+public class ChaosCanvas{
+    private int [][] canvas;
+    private int width;
+    private int height;
+    private Vector2D minCoords;
+    private Vector2D maxCoords;
+    private AffineTransform2D transformCoordsToIndices;
+
+   public ChaosCanvas(int width, int height, Vector2D minCoords, Vector2D maxCoords) {
+        this.width = width;
+        this.height = height;
+        this.minCoords = minCoords;
+        this.maxCoords = maxCoords;
+        this.canvas = new int[width][height];
+    }
+
+    public int getPixel(Vector2D point){
+        Vector2D indices = transformCoordsToIndices.transform(point);
+        int x = (int) indices.getX0();
+        int y = (int) indices.getX1();
+        return canvas[x][y];
+    }
+
+    public int usePixel(Vector2D point, int color){
+        Vector2D indices = transformCoordsToIndices.transform(point);
+        int x = (int) indices.getX0();
+        int y = (int) indices.getX1();
+        canvas[x][y] = color;
+        return canvas[x][y];
+    }
+
+    public int[][] getCanvas(){
+        return canvas;
+    }
+
+    public void clear(){
+        for(int i = 0; i < canvas.length; i++){
+            for(int j = 0; j < canvas[i].length; j++){
+                canvas[i][j] = 0;
+            }
+        }
+    }
+
+}
\ No newline at end of file