Skip Navigation

3D Parametric Modelling

The 3D Parametric Modelling Project is based upon the proposition that a parameterised, hierarchical modelling approach can be applied to all kinds of objects. So far, the objects modelled include harbours embedded in terrain, buildings and various types of ships.

The user is provided with two applications:

  • ThingBuilder
  • ScenarioBuilder

A prototype called ChurchBuilder was developed before ThingBuilder and ScenarioBuilder were developed. 


ThingBuilder is the object modelling tool. It includes a collection of libraries, each library being dedicated to creating one kind of object such as steam locomotives, sailing ships, paddle steamers, scenario scenes (including terrain, railway track, sea and harbours).

The models created with ThingBuilder have behaviours as well as geometrical attributes. The behaviours, like the geometry, are controlled by parameters e.g., turning circle radius of a ship.

Here are three videos of ThingBuilder in use.

Making a Lancashire and Yorkshire Railway steam locomotive

Making a side wheel paddle steamer

Modelling a dock in a scenario scene

The interface in each case consists of three sections:

  • a tree structure showing the hierarchy of the model components
  • a parameter panel where the selected component’s parameters can be modified
  • a 3D view (which can be changed to a 2D view when appropriate)

It was recognised that the hierarchical, parametric approach lent itself to much duplication of code with modifications. Consequently we have created a tool which

  • reads an XML based description of a parameterised, hierarchical model that specifies component hierarchy, component attributes and animation of components
  • generates automatically the bulk of the Java code for the tool that can create such a model implemented as a library
  • adds the new library to the collection of libraries within the ThingBuilder application
  • adds a class representing the model in ScenarioBuilder.

The developer then modifies by hand the Java code that determines from the parameters:

  • the geometry of the object
  • the behaviour of the object

Object behaviour is relevant to how it appears in narrative visualisations developed with ScenarioBuilder.


In ScenarioBuilder we are developing an application that can visualise a textual narrative. The visualisation makes use of knowledge of the geometry and behaviour of the objects within the narrative as defined in ThingBuilder.

Here are two videos of the visualisation of scenario Liverpool Scenario One running in ScenarioBuilder.

Liverpool Scenario One: Three schooners setting sail

Liverpool Scenario One: Swing Bridges and the 2D View

Next, we have two videos showing locomotives being built in ThingBuilder and run in ScenarioBuilder.

Building and running a Lancashire & Yorkshire Railway Rapid Shunter

Building and running a Lancashire & Yorkshire Aspinall 0-6-0 tender engine