Started a new project, GLToyJS; I’m porting my GLToy to WebGL. The advantage, besides using a higher-level language and modern OpenGL (shaders!), is that it is more cross-platform, rather than being a Mac-only screensaver. The disadvantage is that it’s not a screensaver at all, but a web page; I plan to add a wrapper to fix that, and I have a working proof of concept.

So far I’ve put together the core framework and ported 6 of the original 13 effects (most of the in-my-current-opinion good ones, of course). An additional feature is that an effect’s parameters are described in JSON, which will be used to allow you to save a particularly good random result for future viewing. (I could just put them in the URL, in fact — I think I’ll try that next.)

I haven't yet created any new effects, so nothing takes obvious advantage of the additional capabilities provided by shaders (other than refinements such as Phong-rather-than-Gouraud lighting and GPU-side particle systems). I also wrote a sketchy compatibility layer for the GLSL Sandbox’s interface so that you can drop in a fragment shader from there to make an effect; a possible thing to do would be automatically downloading from their gallery (if politeness and copyright law permits).

It's not published as a web page anywhere yet, but it should be and I’ll let you know as soon as it is.

I've written a new topic index page for my site: Games, simulations, and animations. Except for the note about Tile Game, everything on it is something I've already published.

Condensed list of the contents: Tile Game, Fire Worms, Mouse-maze, 15-puzzle, screen savers, Varychase, Linkage, Bouncyworm, Brownian Tree, pendulum animation.

more pictures )

GLToy and Kevin's Fireworks have been updated to run on Intel Macs. As I don't have one myself, please let me know if the screen savers don't work or look funny.

This is another Mac OS X screen saver, which I've been working on but haven't really “finished” to my satisfaction. I’ve decided to publish it anyway.

The basic idea is that there is a grid with various terrain types (which is incrementally modified), and various “mobiles” wander about it. The terrains so far are ground, mountain/wall, water, and bridge. The mobiles are bouncing rollers, edge followers, and fish.

The camera picks several mobiles (usually two) and keeps them in view, choosing different ones after a while, or if the group wanders too far apart.

What's missing:

  • More mobile types. Mobiles that modify the terrain. More modes of locomotion: flying, hopping, etc.
  • Better camera control, so that it doesn't spend as much time showing stationary mobiles or wide-area views, and will follow individual mobiles longer if they manage to move significant distances.
  • Better collision handling. I've already incorporated ODE to manage the basic position-and-velocity, but haven't updated the collision system to take advantage of it (if you're familar with ODE: the space system is not used; no contact joints are created; collisions are handled by setting velocity components to 0). As a result, mobiles may get stuck or run into walls and vanish, won't ever bounce or tumble, etc.
  • A better name.

Here are some rather small screenshots:

more images )

GLToy 1.1

Tuesday, May 3rd, 2005 16:06

I just uploaded GLToy 1.1, a Mac OS X screen saver. From the page:

Miscellaneous OpenGL-based effects with transitions. Highly randomized. Slightly interactive (press I for help).

  • Changes in version 1.1:
    • Info area and particle textures work under Mac OS X 10.3 and later, instead of having or being large white areas.
    • New effects: Voronoi diagram; point grid; infinite tunnel.
    • Plot effect has several new functions to plot.
    • Trail effect is somewhat less ugly.
    • Fractal effect has modes where subdivision boxes appear instead of disappearing.
    • Grids effect has multiple styles of grids, and may turn the camera independently of the direction of motion.
    • Chain effect: spheres will be less oversaturated; new "curl" motion mode; fixed incorrect info display.
    • Particles effect: an uninteresting motion mode has been removed.