Low-glycemic OpenGL hacking for R6RS Scheme
Scheme
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
color
demos
geometry
glamour
glu
misc
processing
README.md

README.md

Quick start

Setup

$ cd ~/scheme # Where '~/scheme' is the path to your Scheme libraries
$ git clone git://github.com/dharmatech/surfage.git
$ bzr branch lp:~derick-eddington/scheme-libraries/xitomatl
$ git clone git://github.com/dharmatech/dharmalab.git
$ git clone git://github.com/dharmatech/agave.git

Run a demo in Ypsilon

$ ypsilon ~/scheme/agave/demos/flexi-line.scm

Run a demo in Ikarus

$ ikarus --r6rs-script ~/scheme/agave/demos/flexi-line.scm

Make a demo load faster in Ikarus

$ ikarus --compile-dependencies ~/scheme/agave/demos/flexi-line.scm

Introduction

Agave started out as a collection of OpenGL demos written for R6RS Scheme. Eventually it grew to include libraries which support basic OpenGL programming idioms.

All of the demos run in Ikarus and Ypsilon.

Libraries

Some of the libraries are:

| library                           | notes |
|-----------------------------------+-------|
| (agave glamour window)            |       |
| (agave glamour mouse)             |       |
| (agave glamour misc)              |       |
| (agave glamour frames-per-second) |       |
| (agave color rgba)                |       |
| (agave color hsva)                |       |
| (agave color conversion)          |       |
| (agave geometry pt)               |       |
| (agave geometry pt-3d)            |       |

The rest of the libraries are mostly support for the demos.

Demos

A few demo highlights.

springies

Long before Sodaplay existed, Doug DeCarlo wrote xspringies. Springies is an implementation of the engine in xspringies. Note that this is not a binding to any C library; this is an honest to goodness mass and spring simulation written in pure Scheme. To me, this is a demonstration that Scheme can be a high-performance language.

cfdg

An implementation of the Context Free Art semantics. It also renders the models. :-) Only a subset of the full ContextFree language is supported, but I picked a subset which allows for some nice pieces to be rendered.

Screenshot:

flexi-line

A port of a demo I found on Open Processing.

empathy

A port of a demo by Kyle McDonald I found on Open Processing.

ca

Simulator for the generations family of cellular automata.