Project Description

GoGraphix is our platform independent virtual reality 3D rendering software and API for use in visualisation of data.

GoGraphix (GGFX) is a graphics library for rendering to a remote 3D virtual world which is being rendered on a computer “somewhere” on the internet. GGFX allows your computer programs to run independently of graphix libraries which on some platforms can be complicated to setup. GGFX provides the programmer with a Graphical User Interface with which they can create their own virtual world. In addition GGFX provides an API which allows a programmer to render shapes and other data such as textures from another computer connected somewhere else on the internet.

GGFX can

  • Render from any language, any operating system TO any computer, anywhere!
  • Be a remote 3D visualisation toolbox for Matlab

  • Remove the need for a graphics card on the PC doing the data crunching.

The idea is relatively simple, a GGFX Server is run “somewhere” on a PC. This PC must have either Windows, Linux or OSX and also have Java installed. Once the service is running and displaying the virtual world it can be easily configured. The server then will render any data received from other clients using the GGFX library. In addition GGFX provides MathWorks Matlab bindings so that a Matlab user can render far more impressive and complex data in a fast interactive virtual universe.

GGFX is particularly useful for rendering data from remote platforms and providing a simple 3D virtual world from which 3D visualisations of data, Augmented Reality Testing and Sensor simulation suites can be easily created.

GGFX is both platform and programming language independent. GGFX programming libraries for communicating with the GGFX server are available for Linux/Unix, Windows, OSX.

GGFX is provided as a library for either Matlab/Java/C++/C/Python (and more). For less widely used operating systems and architectures, the GGFX library can easily generate stub source code which can be incorporated into your own code.

GGFX allows multiple users to render data or control the same virtual universe. This enables fast integration of system outputs in to one unified 3D graphical user interface without needing to write new software to pull all the outputs together.

GGFX uses a simple SceneGraph structure similar to that of VRML/X3D/Java3D. GGFX also provides many additions which allow loading of various 3D graphics formats such as VRML, DXF, 3DS etc. to ease the creation of an initial compelling 3D world.

GGFX provides a graphics server which can be accessed using remote procedure call (RPC). In other words GoGraphix provides a remote interface to its SceneGraph for other software and people to control.

Thus clients can obtain references to the nodes of the SceneGraph being rendered on the server. The client can call the drawing and transform methods associated with those SceneGraph Node objects. The client is also able to create new objects on the SceneGraph and control which subtrees (subgraphs) are switched on for rendering. The client is able to call methods which manipulate the Matrices of Transform objects and edit polygon vertex data in real time as well as use simplified higher level helper functions to render common types of data.

GGFX is powered by the Augmented Reality Framework (ARFWork) which allows for rapid creation of virtual reality scenarios for applications such as Sensor Simulation and Augmented Reality. As such GGFX is far more powerful than a simple 3D remote rendering application.

GGFX owes its origins to the development and testing of Autonomous Vehicles and has been used since 2005 within various institutions and companies for remote rendering of data and also for building full simulation environments for testing autonomous vehicle software.

GGFX was integral in the development of Autonomous Vehicles such as Nessie V and Robotcar

Click on this box to see links showing examples of our work

  • Drop in replacement for standard matlab functions such as ‘Plot3’
  • Supports Distributed Rendering 3D visualisation to same PC or another. (Run Matlab on one PC and Render on another).
  • Stereo Visualisation available with appropriate monitor and Graphics card
  • Fully virtual world
  • Exploration controls
  • Full control of 3D world from Matlab
  • Very easy to use Scenegraph Structure similar to VRML
  • Render Point data, Line Data, Triangle and Polygon Data directly to the 3D world with simple functions
  • Render Textures, Control Transparency, Control Camera, create movies and animations
  • Render 10’s of Millions of Points and Polygons
  • Platform independent: Windows, OSX (PowerPC not supported), Linux
  • Select data, and call your own custom Matlab code
Technical Requirements:
• OpenGL capable graphics card with drivers installed.
• Recommended: Dual Core Intel Pentium (Or compatible) or better.

Extra Packages available at no extra effort:
Eg. Render from any other programming language to graphics server: Java, C, C++, Python etc

And there is more… please contact us for specific info or customisations.