C0d1ng4fun

Future Editor

2003-2004

The main view with the editor menu to the right.
Smooth editing of a sphere mesh.
The outline of a rotational body.
3D view of a rotational body.
Perlin noise rendered in noise editor.
A ray traced clear cube for testing refraction.
Ray traced animation panning over a landscape.
Ray traced animation spinning a round a reflective round cube.

In 2003 I found myself with a lot of ideas and inspiration for 3D graphics. Earlier I had built World Creator as an editor and tool for J3D content. This time I wanted to ditch the real time requirement on the data structures that came from having the same structures in the engine as in the editor. Having data structures not suited (rich enough) for editing was one of the biggest issues with World Creator.

The GUI of Future Editor is by design much like its predecessor, World Creator, based on keyboard interaction. Although it clearly had a negative impact on the learning curve it became highly efficient to move around between different views and switch tools after working with it for a while. Graphically it is meant to be run as a fullscreen application with a structure based around a few fixed size areas.

  • Main menu, top level
  • Menu, several levels
  • Tool menu, bottom level
  • Console
  • Editor frame

All editor commands including those to control the UI itself is dispatched through a console which made it easy to make the application extendable. Adding a new tool involve creating some text based resource files and connect them to the new code for the tool.

Some useful features:

  • Meshes
  • Rotational bodies
  • Procedural texture generator including Perlin noise
  • Surface and material tools
  • Skinning
  • Skeleton animations
  • Particle systems
  • Scene graph
  • Animation

There are also a number of experimental features:

  • NURBS

The editor also has a ray tracer that can generate individual frames in the editor. A separate tool can be used to ray trace animations though I never took the time to optimize it much. Hence the low resolution in the examples.