====== Anaglym Graphics Engine ======
===== About Anaglym =====
The Anaglym graphics engine uses the Lua programming language as a high-level language in which to interpret Anaglym applications.
Applications running inside Anaglym are Lua scripts that have a particular environment exposed to them.
This environment provides high-level interfaces for creating and interacting with 3-dimensional objects, creating and controlling audio, and utilizing physics for the virtual world.
Because the Anaglym engine only exposes a controlled set of routines to the executing script, execution of the hosted script is very secure.
The script cannot, for example, read or write arbitrary files from the host's filesystem.
Anaglym makes use of a variety of other technologies to run:
* [[http://www.opengl.org/|OpenGL]]
* [[http://www.libsdl.org/|SDL]]
* [[http://www.libsdl.org/projects/SDL_image/|SDL_image]]
* [[http://icculus.org/SDL_sound/|SDL_sound]]
* [[http://ode.org/|ODE]] (Open Dynamics Engine)
* [[http://www.lua.org/|Lua]]
Anaglym was my Master's project for [[http://cis.gvsu.edu/|Grand Valley State University's Computer Information Systems]] graduate program. You can see the entry in the GVSU [[http://scholarworks.gvsu.edu/gradprojects/4/|ScholarWorks]] system.
===== Release Downloads =====
The downloads available in this section are pre-compiled Windows binaries.
To run anaglym in linux, check out the [[#Source Code]] and [[#Building anaglym|build]] it (below).
^ Release Version ^ Release Date ^ Download ^ Documentation ^
| 1.1 | 2010-09-24 | {{:projects:anaglym:anaglym-1.1.zip|}} | {{:projects:anaglym:anaglym-1.1-doc.html}} |
| 1.0 | 2010-08-10 | {{:projects:anaglym:anaglym-1.0.zip|}} | {{:projects:anaglym:anaglym-1.0-doc.html}} |
===== Source Code =====
You can obtain the code with the following command:
git clone git://holtrop.mooo.com/anaglym.git
===== Building anaglym =====
To build Anaglym you'll need a few packages (these are the names of the packages in the Ubuntu repository):
* ''liblua5.1-0-dev''
* ''libftgl-dev''
* ''libsdl1.2-dev''
* ''libsdl-image1.2-dev''
* ''libode-dev''
Then:
make
===== Invoking anaglym =====
Usage: anaglym [options] program.lua[c]
Options:
-w : set window width
-h : set window height
-f : do not fullscreen
-g : do not grab mouse input
-s: set multisample level (default 4)
===== Screenshots =====
{{:projects:anaglym:anaglym-bowling.png?320}}
===== Release History / Features In Progress =====
==== 1.2 (in progress) ====
* get full path to engine
* subfolders are allowed in Lua-specified paths separated by ":" characters
* added Quads
* TODO: documentation for Quads
==== 1.1 ====
* Added ''enable_blending'' flag to optional object creation arguments to enable alpha-blending for transparency
* Added ''obj:setTransparency(t)'' method to set the transparency of created objects without textures
* ag.pickObjects() sets ''pick_dist'', ''pick_pos'', ''pick_normal'' attributes on selected objects
* Added ag.pickOne() to efficiently pick points on a single object
* Fixed bug with obj:getSize() returning twice the size for created boxes
==== 1.0 ====
Initial release.