Hi Ryan,
Penumbra was my first project with Clojure. Besides a few Euler
Project problems, it was the first real Clojure code I had written.
In spite of this, I think it was a pretty big success. I've had a lot
of fun with it, and so have a number of other people.
However, there are some flaws. A lot of it is half-finished,
especially the Clojure->GLSL transliteration, which can do some
fantastic stuff but falls down in some basic cases. The type
inference is pretty ad hoc, and needs a lot more hand-holding than it
should. There's also some clever stuff to abstract away the
lower-level details, but I have neither the resources nor the
expertise to say exactly what hardware will support these
abstractions. Thus, anything written with Penumbra will not run
anywhere, but neither will it necessarily run exactly the same on a
more limited set of hardware.
Also, the JVM is kind of a terrible platform for distributing OpenGL
applications (Minecraft is the exception that proves the rule). It's
a fun way for us as programmers to play around with the graphics
hardware, but not a good way to share what we make with other people.
I think this cuts away one of the major motivators for making cool
stuff. I wrote what I think are the first implementations of Tetris
and Asteroids in Clojure, but only a small number of people have ever
played them.
My current plan is to instead make a WebGL wrapper for ClojureScript.
This solves a number of the above problems: the API is more focused,
the minimum hardware specs are a lot more detailed, and distribution
is a snap. Also, I think I can apply the lessons I've learned from
using Clojure for the last two years and create a higher quality
implementation.
If you'd like to fork Penumbra, please be my guest. However, I may
not be able to give you sufficient time to bring you up to speed on
how everything fits together (and since it's been more than a year
since I touched most of the code, my own understanding is less than
perfect).
I hope that answers your question. If you have any others, please let me know.
Zach
On Mon, Sep 26, 2011 at 9:29 PM, omniomnibus <ryan.spang
...@gmail.com> wrote:
> I see penumbra is not under active development, yet I like it very
> much : )
> I was upgrading my app to 1.3 and noticed several dynamic vars that
> need to be fixed, probably pointing some libs away from contrib as
> well.
> Is there a reason you stopped development, as in a design flaw or some
> other showstopper? Or are you just caught up in other projects? I
> think the shader stuff is a very good start to making a pipeline fully
> programmable from clojure, which is something I would love to see
> happen. If there is not some serious performance problem or otherwise
> with penumbra I would like to continue development on it, get it up to
> 1.3 etc. Possibly with your input? Either way, just curious before I
> forge ahead : )
> Thanks!