User Tools

Site Tools


projects:anaglym

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:

Anaglym was my Master's project for Grand Valley State University's Computer Information Systems graduate program. You can see the entry in the GVSU 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 build it (below).

Release Version Release Date Download Documentation
1.1 2010-09-24 anaglym-1.1.zip anaglym-1.1-doc.html
1.0 2010-08-10 anaglym-1.0.zip 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<width>  : set window width
  -h<height> : set window height
  -f         : do not fullscreen
  -g         : do not grab mouse input
  -s<samples>: set multisample level (default 4)

Screenshots

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.

projects/anaglym.txt · Last modified: by josh