Freescape is a video game engine, an early 3D game engine used in video games such as 1987's Driller. Graphics were composed mostly of solid geometry rendered without shading. History Developed in-house by Incentive Software, Freescape is considered to be one of the first proprietary 3D engines to be used in video games, although the engine was not used commercially outside of Incentive's own titles. The project was originally thought to be so ambitious that according to Incentive designer Ian Andrew, the company struggled to recruit programmers for the project, with many believing that it could not be achieved. Paul Gregory (graphics artist for Major Developments, Incentive's in-house design team) mentions that Freescape was developed by Chris Andrew starting in September 1986 on an Amstrad CPC, as it was the most suitable development system with 128K memory and had adequate power to run 3D environments. Due to the engine's success, it was later ported to all the dominant systems of the era: the ZX Spectrum, the IBM PC, the Commodore 64, Amiga and Atari ST. Freescape development ended in 1992 with the release of 3D Construction Kit II. Its legacy continued in the latter Superscape VRT virtual reality authoring engine, from the same developer and advertised on the 3D Construction Kit II software. Technology Geometry The Freescape engine allowed the generation of complete 3D environments that consist of a floor and as many primitives as memory and processor speed realistically allowed for. These primitives were cuboids, four-sided frustums (called pyramids by Freescape), triangles, rectangles, quadrilaterals, pentagons, hexagons and line segments. A further primitive, "sensor", was used for gaming purpose to detect the position of the camera relative to the sensor in the game world. Freescape was designed with limited hardware in mind and as such contains a number of inherent limitations that are necessary to enable the games to run properly on these computers: Individual regions were restricted to a size of 8192 × 4096 × 8192 units. These units were arbitrary but each region always corresponded to the dimensions. The engine did not allow for fractional movements. On 16-bit machines each movement — camera or object — must be a multiple of one unit. On 8-bit machines the angles at which the world may be viewed are further restricted to steps of 5 degrees. The x and z axes were subdivided into only 128 discrete locations, and the y