December 16, 2008
Cross (Product) Hatching...
Another pic and movie, I replaced the basic "spot" pixels with slash marks, giving an interesting effect.
Here's a clip of the space in motion...




December 10, 2008
Genetics of an inkblot city
Further sketches (i.e. scripting) some ideas in Here Be Dragons - Including a video clip showing a hasty city metamorphisis.
Rendering as I type this, I should have a movie showing (by a sort of time lapse) the climate simulator in action, showing how heat, wind, and moisture can visualize (for starters) cloud movement. I'm still working on the best ways to visualize (or convey through audio) rain, snow, wind force, and other implicit consequences of these systems...ah, here it is...
People talk about needing more interactions with virtual characters than just simple conflict - this also goes for environments. Most environments in games and other interactive settings are static, typically because it's much easier to optimize such a space for computer performance. Physics simulations promise more dynamism, but most depictions I see are cosmetic.
The spaces here are the result of a fairly straightforward interaction of variables like wind, rain, and heat - the player can change these, providing short term obvious consequences and longer term less obvious ones. Even at this stage it's possible to irrigate regions to provide plant life, or scorch an inland region to create a desert. The agents themselves are starting to get perception of these worlds, gaining sensations of the environment around them. At this point the difference between a city and creature is a simply visual - that will likely change but I mean to explore the oddities of this potential life cycle.
Each creature/city contains a "gene" - crossbreeding is possible, but for genetic programming to work one needs a fitness function to determine how successful a gene is at a given task. In this case the world, climate and all, provides the fitness function for a given gene. There won't be a single gene that will always be successful in an uncertain world. Hopefully this means the space will maintain a state of change, and, therefore, animism.



November 29, 2008
Playstation 3/Gamebryo Workshop December 1st

Next Monday, December 1st will be a demonstration of the Gamebryo game engine and the Playstation 3 development kit, showing a method of creating current-generation games. You might remember the Gamebryo engine from such games as Oblivion and Civilization IV, and I imagine folks have heard of the latest incarnation of the Playstation. Both are potentially available for student use – This workshop will show how to create an animated scene (complete with shiny stuff like normal mapping), import and interact with it in a Gamebryo executable with minimal C++ code, and then compile the Gamebryo code and play it on the Playstation 3 console.
The workshop will be on Monday, December 1st from 1-4pm in the ZML and will probably end up at the Game Innovation Lab next door. Students and others interested please email tfurmanski@gmail.com
September 16, 2008
/I can see cloudy now/ the rain will come/
Timelapse of my current 3D space implementing my proce55ing originated weather simulator. These are motivated by a combination of heat, water, moisture, and terrain, _not_ a run of the mill noise filter:

I now "know" when a given area will have rain, if it's hot or cold, if it's humid or dry. These basic clouds are just to check and see if the simulation is working - there's a ton of ways I can visualize this stuff. There's also quite a number of ways an agent or player could theoretically interact with or be affected by it...
September 5, 2008
Sunsetting
Took a very simple take on how to do day and night cycles here:
http://www.phys.uu.nl/~0307467/docs/skydomes.htm
and applied it to the sprawling sky I currently have in my codebase.



I decided to plan for specific day/dusk/night "fog" colors as well as light colors, interpolated based on the height of the sun. Actually, any star - With this setup changing sky color, sun color (and hence, what sort of of light hits the planet), and the like are trivial to change now.
With a star/sun height calculable, along with seasonal variation, I'm already working on getting my previous weather simulation code working within this space. That implicitly means I'll have data for clouds, fog, rain, and vegetation cover acting dynamically over a virtual globe - although how I visualize these things is a separate problem that has many solutions.
July 23, 2008
Pictures, Moving, and Stars

And in 3D...

And a clip of some of the effect in action -
and a slightly older clip, with a stationary city/creature:
I've been giving myself a series of contradictory goals - Abstract imagery with accurate, viewable stars. It's odd to have the far away objects detailed and the near ones out of focus. That said, it's an interesting challenge, and plays with how I want the world(s) to work.
July 11, 2008
From Void to Vegetation, Vacations and Videos Verify Voluminous Vistas
Image from the top of Orcas Island...

Spent a week in the San Juan Islands up in Washington - very interesting place. Relevant to this discussion is that the islands seem to have an excellent "balance" in terms of level design - a nice mix of water, land, meadows, forests, and towns. You could do worse than start from its USGS data to make a terrain-based RPG or MMO.
A few games and projects I've been keeping tabs on:
Spore - A lot of the planetary simulation is getting me interested, actually. Some decent adaptation of planetary and interstellar theory, if you believe the rumors. The creature editor is impressive, and quite a bit of fun. I'm mainly modeling critters from my own mental spaces. The whole affair has made me value my own internal muse. Trying to do creatures from others sources is also fun, but this being a wired world, odds are several people have beaten you to the punch. At day two after release I already found 3 instances of Opabinia, and some of the spare parts given seem like they were made for creating an accurate Anomalocaris - don't even get me started on other things.
Spore encapsulates a lot of things you'd want in a typical universe - From that, I'm immediately searching for the things it doesn't do. The outliers and freak points suddenly become much more interesting.
LoveMMO - Not only procedural, but also impressionistic. A little abstraction goes a long way. Some interesting observations on his blog about narrative, open-ended gameplay, and procedural methods.
The game is certainly taking the strategy of fun dynamics - For instance, there's a tectonic system that will shift things around over time. Adding such a device may seem like paying too much attention to detail, but adding geologic processes will probably occur to a lot of people building a dynamic world. There's a Tao to building systems that will last. If you model erosion (i.e. destructable environments) into a world (from rain, wind, or grenade launchers) eventually the whole place will smooth out to nothing or sink into a dead mire. As system for making things go down needs another one to provide upheaval. Indeed, our own physical world platetectonics do exactly this - it's a crucial ingredient for life as we know it.
Dwarf Fortress - I've talked about this one before, and it's the only one on the list that's accessible to play at the moment. I've played a ton of this (strangely enough, about the same time everyone else was playing GTA4). The single player mode, actually. Running around mucking up an incredibly detailed procedural world can be quite fun, even with faux-ASCII graphics. It's got me thinking about text again. The combat, for instance, is an incredible amount of fun because it's described in text. A picture may be worth a thousand words, but a word can be worth a million models, animations, and texture assets. The whole affair can come off as fun, absurd, and incredibly useful, yet any form of graphical representation would be almost prohibitively complicated. The text hides what would otherwise be considered goofy graphical gaffes, while allowing the player's own imagination and sense of disbelief to take over.

Abandoned airfield on near a peak of Cypress Island
June 26, 2008
Proce55ing a world simulator
Using a series of different cellular comparisons (none of them, on their own, particularly complex) I've thrown together a quick world simulator that models heat, wind, clouds, rain, and erosion, in roughly that order, in real time:

I have a "sun", a heat source that moves across the world map. It heats up the water and land, and the heat dissipates away otherwise (simulating night or winter). Water absorbs and dissipates heat slower, and keeps a generally cooler temperature than land. This creates a cyclical oscillation in temperature...

...which is how we create wind! Air moves from high pressure to low pressure (or from hot to cold, trying to achieve equilibrium). With the heat map we can create a wind map:

The wind in turn directs the heat, creating a little feedback loop. The terrain also effects the wind, slowing down or redirecting it. Differences in shading from the terrain also produce differences in heat throughout the day - A side of a mountain is cold in the shade, but can the warm up as the sun travels through the day (the grey band is "high noon", where I assume no shadow):

Heat + water = moisture. Moisture + lower pressure = rain. Very simplified, but it produces interesting, cloud-like motions and behavior, from rain shadows to foggy marine layers. Blue = moisture, green = rain. Cyan is a lot of each:

Rain or moisture on land will produce greenery in this simulation. The shots above or only from the start. Erosion (rain and wind) will smooth out the terrain eventually.
I'll have to make a little nod to the makers of Dwarf Fortress (read the dev blog, it's an awesome experiment in world building), it generates rainfall in a similar fashion as a matter of course. I had been thinking about this sort of dynamic for a long time before stumbling on DF, but reading the specs and playing the game made me sit down and give the simple algorithms an honest try myself.
This relates back to Here Be Dragons and how agent behaviors need motivation. With classical genetic programming you typically have a direct fitness function - how well does something do "x"? Another way is to model an ecosystem you need a dynamic, sustainable world. Even in the simple setup above, situations are chaotic and change enough to keep its inhabitants on their toes - needing food, water, and the right amount of heat.
After two days of work I intuitively understand weather better than I have after years of study (although it necessarily took years of study to learn the concepts). I find myself looking now at the Coriolis effect to get more earth-like weather patterns, and figuring out some form of plate tectonics in order to counteract the erosion. Otherwise all the dirt will sink into the water eventually.
Design for these systems is interesting, and really not too hard - you can mess with variables endlessly, just remember that idea of achieving some equilibrium - add and remove, and conserve.
April 24, 2008
Woodcuts (or Old School Rasters), special glasses optional...
A lot of woodcuts, monochromatic printing techniques, and indeed old rasters are simply one color, and simulate value by varying the width of the lines that pass through the image. I was curious how this would look in a realtime 3D engine. Taking the original "control" image for reference:

I sampled the values of a given frame and varied their width based on the value of the given pixel. This is a single result:

The whole thing is vaguely reminiscent of the classic Sierra Online logo. The image itself is hard to read, but moving through the space is interesting - persistence of vision is a very important part of our senses when it comes to understanding spaces. I'll try to get some movie captures of the effect online.
Oh, and there's no reason it can't work in 3D:

This adds another element to the eyes when it comes to understanding the space, and creates some rather strange volumes.
The following shots are cheating a little bit - I added in the actual values of the sampled pixels. This makes a static screenshot a little easier to read, but kind of defeats the purpose of a true 1-bit, black and white image - it looks a little more like I'm blocking an image with lines instead of creating detail with them:

And in anaglyph 3D - in this push button age, why not?

I'll have to follow my own advice and post some movies - Non-Photoreal Rendering, if you have the goal of making it real time, needs to be seen in motion.
August 28, 2007
Lunar Eclipse 8.28.2007, ~ 1am-5am






Wonderfully strange night. The ocean tide was at one of its uncannily low points - I mean really low, you could almost wade out to the end of the pier. Also saw what must have been a late Perseid shooting star.
Wrote a time lapse program in Processing that takes a video feed and saves an image every (n) seconds - I have over 500 images (some samples shown above) taken 30 seconds apart from last night I'll try baking into a video clip.