Linear Algebraic Shell


LAS - Linear Algeberaic Shell is a command based matrix transformation visualizer for 2D space.



LAS supports two kinds of number arguments. Real numbers (floating point) and trigonometric functions. Trigonometric functions have the format (func x) where x is a real number. For example: (sin 2), (cos 18.9999). Trigonometric functions must always be surrounded by parentheses and CAN NOT be nested like (cos (cos 1))! currently only cosine and sine are supported.


You can use vector, vec, or v to create vectors, it takes two number arguments. For example:

>>> vec x y
>>> vector (cos x) y
>>> v x (sin y)
>>> v (cos x) (sin y)


You can apply a matirx transformation to the space using transform or t for short. It takes 4 number arguments m11 m12 m21 m22 in that order. For example:

>>> t m11 m12 m21 m22


You can use rotate, rot, or r to rotate the space. It takes the degree as an argument and not a radian. Rotate is basically just a specialization of the transform command that applies the matrix with first row [cos(deg) -sin(deg)] and second row [sin(deg) cos(deg)]. Examples:

>>> rot 90
>>> rotate 180


You can use reset to reset the state of the world, reverse all transformations and remove all displayed vectors.

>>> reset

The following commands:

>>> v 1 0
>>> v 0 1
>>> t 2 0 0 2
>>> t 1 0 1 1
>>> t 0.5 0 0 0.5

would create the two basis vectors, scale the whole space by a factor of 2, take the basis vector (1 0) to (1 1), and then scale back to the original factor.


If you find a bug or just wanna chit chat then send me an email at nullp0tr at gmail dot com. You can also directly contribute to the project on github :)