Monday, 31 December 2012

Procedural Skybox WIP

I've been learning JavaScript. I thought that a great way to get started would be to try some 3D graphics in the browser using WebGL.

It has been great fun, thanks to Three.js, a lightweight 3D JavaScript graphics library. The examples of it in use are pretty cool and it's clearly going places, and it's incredibly easy to use thanks to the vast number of said examples means you can dive straight into those to figure out what's going on.

So, I had a shot at doing an atmosphere simulation with sun and clouds. I hooked it into date and sun position libraries and have a realistic day-night cycle going thanks to that. The aim is for it it all to be procedurally generated and realtime. On my computer (with a Radeon 5750) it runs at a steady 60fps at 1920x1080 resolution.

The atmosphere is an attempt to be fairly realistic and account for atmospheric scattering. This walkthrough by Florian Boesch made the maths really clear.

I am going for a wispy oriental look for the clouds, like how I would imagine clouds in a game like Okami would look, but with a 3D appearance. It turns out that it's relatively easy to create the effect using turbulent noise, rather than generating realistic clouds.

Here's what it looks like now:

I am currently up to adding some extra bits like JSON models and a minimap. Also, collision detection using Physijs.

Eventually I will add proper lighting for objects in the world and add some nicer models, and then release the code. May try to get it added as a Three.js example, if it turns out well.

On a related note, wow, check these guys out: Reset Atmosphere Tech WIP

Sunday, 30 December 2012

Blind Crossword 3D Again

Back in August I posted about the 3D Crosswords for the Blind software I was working on. Now it's time for a proper release and the code is up on github, with build instructions, documentation and binaries. Windows (XP/Vista/7/8) Version 1.0 (December 2012) here: download.

The program is completely voiced (using SAPI on Windows) and is written in portable C++. It is licensed under the GPLv3.

Here are a couple of screenshots of it in action:

The coloured highlight on this grid marks an anagram

Solvers with poor vision can zoom and pan about the graphical crossword grid to get a good view.
Update 23/01/2013 - Mac version (work in progress):

The OSX version uses the NSSpeechSynthesizer text-to-speech interface for voicing.

Solvers can print and email their answers. It's possible to check answers, sort and filter clues, and more. You can also print and email your answers off to be appraised by Eric Westbrook, the sponsor for this project and a partially blind crossword setter!

There lots of features that can be added and improved to make it better! I am seeing about getting the software to load several 2D crossword formats as well as adding a number of other features through the coming year.

If anybody reading this would like to help contribute or collaborate on this project then send me a message, it'd be great.