Overview

By "graphic simulation" we mean computer programs that represent 3D worlds and make them visible to the user. These worlds may be realistic or completely imaginary. In fact, the worlds may be abstract, as in many data visualization applications.

Building graphic simulations is difficult. To succeed, efficiency is key. Therefore, the use of both code libraries and content creation tools is generally required. This fact gives graphic simulation building a different character from building one's first graphic applications directly in a low level library like OpenGL. The first difference is that, when tools are used, there must be a tool chain. Each content tool, its exporter, and the run-time library that uses the asset will have its own limitations. To succeed, these limitations need to be understood and respected, and this is not easy, and generally requires trial and error. Secondly, tools and libraries alike tend to be quite complicated and under-documented. This means not only additional trial and error learning, but also some amount of code reading may be required.

The approach taken on these pages is to use web standards, particularly HTML5 and WebGL, to produce graphic simulations that are rendered in the web browser. This approach is motivated by the fact that web technologies are relatively simple to understand and work with. The demand for web content is huge and requires a correspondingly large pool of developers. This being the case, technologies that require special genius on the part of the developer are impractical, and tend to be quickly replaced. Secondly, once a graphic simulation is developed for the web, it is as easy as could be to share it with others. As most simulations are meant for the use of a group, this fact is very attractive.

The name "1-2-three" refers to the fact that the three.js rendering engine, hereafter referred to as "Three", is used throughout.