diff --git a/src/main/java/org/example/chaosgame/transformations/AffineTransform2D.java b/src/main/java/org/example/chaosgame/transformations/AffineTransform2D.java
index 19a91cad6260d0124763afa0c154f7e4c8d29fa8..b1b46b251b30f900f3f64c882ddcc5ff55d2c2b6 100644
--- a/src/main/java/org/example/chaosgame/transformations/AffineTransform2D.java
+++ b/src/main/java/org/example/chaosgame/transformations/AffineTransform2D.java
@@ -1,4 +1,19 @@
 package org.example.chaosgame.transformations;
 
+import org.example.chaosgame.linalg.Matrix2x2;
+import org.example.chaosgame.linalg.Vector2D;
+
 public class AffineTransform2D implements Transform2D{
+  private final Matrix2x2 matrix;
+  private final Vector2D vector;
+
+  public AffineTransform2D(Matrix2x2 matrix, Vector2D vector) {
+    this.matrix = matrix;
+    this.vector = vector;
+  }
+
+  @Override
+  public Vector2D transform(Vector2D point) {
+    return matrix.multiply(point).add(vector);
+  }
 }
diff --git a/src/main/java/org/example/chaosgame/transformations/JuliaTransform.java b/src/main/java/org/example/chaosgame/transformations/JuliaTransform.java
index 3a2be6006bb8460a15782f30319c7a4ab8838667..e52b7268d173e5db4b2a6323825a39513a191e28 100644
--- a/src/main/java/org/example/chaosgame/transformations/JuliaTransform.java
+++ b/src/main/java/org/example/chaosgame/transformations/JuliaTransform.java
@@ -1,4 +1,22 @@
 package org.example.chaosgame.transformations;
 
+import org.example.chaosgame.linalg.Complex;
+import org.example.chaosgame.linalg.Vector2D;
+
 public class JuliaTransform implements Transform2D{
+  private final Complex point;
+  private final int sign;
+
+  public JuliaTransform(Complex point, int sign) {
+    this.point = point;
+    this.sign = sign;
+  }
+
+  @Override
+  public Vector2D transform(Vector2D point) {
+    Vector2D result = this.point.sqrt(point.getX(), point.getY());
+    double a = sign * result.getX();
+    double b = sign * result.getY();
+    return new Vector2D(a, b);
+  }
 }
diff --git a/src/main/java/org/example/chaosgame/transformations/Transform2D.java b/src/main/java/org/example/chaosgame/transformations/Transform2D.java
index ba92e3e6983170ebda89b1d91b60a36d554f9da0..5aab73454d2121204a9d2f2ba77633d876968975 100644
--- a/src/main/java/org/example/chaosgame/transformations/Transform2D.java
+++ b/src/main/java/org/example/chaosgame/transformations/Transform2D.java
@@ -1,4 +1,8 @@
 package org.example.chaosgame.transformations;
 
+import org.example.chaosgame.linalg.Vector2D;
+
 public interface Transform2D{
+  public Vector2D transform(Vector2D point);
+
 }