diff --git a/src/instructionset.md b/src/instructionset.md
new file mode 100644
index 0000000000000000000000000000000000000000..a45eb460dab33fe72c8305bc6829c175ee138984
--- /dev/null
+++ b/src/instructionset.md
@@ -0,0 +1,55 @@
+# instruction set
+## arithmetic
+### component-wise types
+- FloatFloat (returns float)
+- Vec2Vec2 (returns vec2)
+- Vec2Float (returns vec2)
+- FloatVec2 (returns vec2)
+- Vec3Vec3 (returns vec3)
+- FloatVec3 (returns vec3)
+- Vec3Float (returns vec3)
+- Mat2Mat2 + AddVec4Vec4 (returns mat2/vec4)
+- Mat2Float + AddVec4Float (returns mat2/vec4)
+- FloatMat2 + AddFloatVec4 (returns mat2/vec4)
+- Mat3Mat3 (returns mat3)
+- Mat3Float (returns mat3)
+- FloatMat3 (returns mat3)
+- Mat4Mat4 (returns mat4)
+- Mat4Float (returns mat4)
+- FloatMat4 (returns mat4)
+### instructions
+- Add
+- Sub
+- Mul
+- Div
+### Extra Multiplication
+- MulMat2Vec2 (returns vec2)
+- MulVec2Mat2 (returns vec2)
+- MulMat3Vec3 (returns vec3)
+- MulVec3Mat3 (returns vec3)
+- MulMat4Vec4 (returns vec4)
+- MulVec4Mat4 (returns vec4)
+## Matrix manipulation
+- TransposeMat2
+- TransposeMat3
+- TransposeMat4
+- InvertMat2
+- InvertMat3
+- InvertMat4
+## Data manipulation
+### Types
+- Float
+- Vec2
+- Vec3
+- Vec4
+- Mat3
+- Mat4
+### Swaps
+SWAP aaabbb
+where a is type1  
+where b is type2 
+
+### Dups
+DUPLICATE aaaddddd
+where a is type
+where d is distance back in floats
\ No newline at end of file