I always liked this procedurally generated nighttime cityscape by Shamus Young: <a href="http://www.youtube.com/watch?feature=player_embedded&v=-d2-PtK4F6Y" rel="nofollow">http://www.youtube.com/watch?feature=player_embedded&v=-d2-P...</a><p>He wrote a whole article series walking you through it, plus source, etc, starting here: <a href="http://www.shamusyoung.com/twentysidedtale/?p=2940" rel="nofollow">http://www.shamusyoung.com/twentysidedtale/?p=2940</a>
I love practical walkthroughs like this. And in this case, as someone with not much OpenGL or 3D experience, it's good to reach an outcome that I can then go back and tweak. The GLSL Sandbox, behind the Mr Doob demo, I believe(?) is good for this stuff, especially as you can edit in the browser: <a href="http://glsl.heroku.com/" rel="nofollow">http://glsl.heroku.com/</a><p>Along related lines, I saw a similar tutorial yesterday on creating a synth using the Web Audio API: <a href="http://noisehack.com/how-to-build-monotron-synth-web-audio-api/" rel="nofollow">http://noisehack.com/how-to-build-monotron-synth-web-audio-a...</a>
I'd much rather see such a tutorial about how to do this without Three.js — this high level, you're not /really/ doing anything with WebGL directly. It's like a tutorial for the DOM just going, "so, we're going to use jQuery".
I guess I'm a bit spoilt, but these days I kind of expect "procedural", in graphics demos, to also imply "infinite in all directions, without repetition, with deterministic results in regard to position, generated in real-time, and without caching anything you're not currently looking at." Maybe I'm too picky...<p>But it shouldn't be much harder in this case! Layer some octaves of simplex-noise to form a terrain, and then for any non-occluded map region, "grow" a building from the center of each noise feature. Might be possible to only tell the GPU about the terrain-texture, and create the buildings entirely in a shader, actually.
Buildings of similar height all look the same. I guess adding some variation like 2 or 3 different building textures would make it look like a real city.