This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
penumbra /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Fri Sep 25 09:06:42 -0700 2009 | |
| |
README.textile | Mon Nov 16 22:40:18 -0800 2009 | |
| |
epl-v10.html | Mon Jul 13 19:51:07 -0700 2009 | |
| |
lib/ | Tue Oct 06 22:51:35 -0700 2009 | |
| |
src/ | Sat Dec 19 10:11:38 -0800 2009 |
README.textile
Penumbra is an idiomatic wrapper for OpenGL in Clojure, by way of JOGL.
This Java/C code
glEnable(GL_LIGHT0);
glPushMatrix();
glTranslated(0, 0, -10);
glBegin(GL_QUADS);
glVertex3d(0, 0, 0);
glVertex3d(0, 1, 0);
glVertex3d(1, 1, 0);
glVertex3d(1, 0, 0);
glEnd();
glPopMatrix();
becomes
(enable :light0)
(push-matrix
(translate 0 0 -10)
(draw-quads
(vertex 0 0 0)
(vertex 0 1 0)
(vertex 1 1 0)
(vertex 1 0 0)))
Numerous sample programs can be found in src/examples. They include clean, functional implementations of Tetris and Asteroids, and a GPU-driven Mandelbrot viewer.
A long term goal for Penumbra is to simplify GPU programming as much as possible, allowing for both advanced graphical effects and general computation. This is a work in progress, but this n-body simulation is a good example of what’s possible.
Installation directions can be found here.







