README.md

# VElixir

VElixir is a simple to use primitive 3D graphics library. It offers great performance, and ease of use. VElixir was inspired by VPython, which makes basic 3D graphics in python trivial. Now it's just as easy to make 3D graphical visualizations in Elixir.

**Documentation, tutorials, and more object types coming soon!**

Current object types:
- Sphere
- Cylinder
- Cone
- Arrow

VElixir is easy to extend. New meshes and objects can be added with ease.

Current features:
- Transformation matrices are automatically inferred from simple data attributes like `pos`, `radius`, and `dir`
- Transformation matrices can still be manually specified instead
- Built in Vector math, and basic operators (+-\*/) are overrided to work with vectors
- Any GenServer can be used as a render source
- Meshes and Objects can be easily added to VElixir
- Mesh data is stored in Vertex Array Objects on the gpu for fast performance

Current limitations:
- Meshes must be uniformly colored, and textures are not supported
- Meshes cannot be modified after creation, only transformed

## Installation

**TODO: Add project to hex.**

  1. Add velixir and enm to your list of dependencies in `mix.exs`:

        def deps do
          [
            {:enm, github: "basho/enm"},
            {:velixir, "~> 0.0.5"}
          ]
        end