

Show HN: Evolve 3D projections of an image, on hardware via webGL - fenomas
https://github.com/andyhall/glsl-projectron

======
tagawa
Beautiful effect! One question - in the example client, if I drag the 3D model
while it's drawing is it still comparing against the front projection or is it
comparing against the projection from which I'm viewing (if that makes sense)?

~~~
fenomas
Thanks!

To answer your question, rotating the view doesn't affect the calculations at
all. Internally it renders (unrotated) into a smallish scratch buffer for
comparisons; it's only when painting to the screen that it knows how to rotate
the output.

~~~
tagawa
That's good. So you could combine it with head-tracking and have an
interactive 3D piece of "growing" art on your wall. I'm guessing the GPU on a
Raspberry Pi, for example, would be underpowered but it would be fun to look
into.

~~~
fenomas
Well, rendering data that's already made is very light weight, since it's only
a few hundred triangles.

As for creating new projections, it depends on whether you can read data from
the gpu with gl.readPixels() or not. From googling docs I thought this would
work anywhere OpenGLES 2.0 was supported, but my test device claims to support
OpenGLES 3, and readPixels() fails on it - I haven't looked closely at why
yet.

~~~
tagawa
Thanks. I don't have a Raspberry Pi or similar (yet) but I might look into the
head-tracking part.

------
fenomas
I know there have been several projects based on "evo-lisa" in the last few
days, but I'm not jumping on that bandwagon - this took me two weeks!

Incidentally, even after implementing this I'm still not sure if it's proper
to call it a genetic algorithm. Any comments welcome.

Thanks for checking!

