Open source since 2000

CarWorld is a cross-platform driving simulator and experimental test bed for real-time rendering, vehicle dynamics and networking.

CarWorld is written in C++ and uses SDL2, SDL2_image, SDL2_net, OpenGL and GLU. See the repository documentation for the currently known build instructions.

Historical project, preserved and maintained on GitHub

CarWorld showing a red sports car on a road in a mountainous landscape View full-size screenshot

About the project

Built to explore how cars move—and how worlds are rendered.

CarWorld is a driving simulator and demonstration program created by Marcus Hewat, mostly while he was a student in the late 90's erly 2000's. It became a practical place to test ideas in graphics, mechanics, input and networked simulation.

The source code is available under the GNU General Public License v3.0. The project has run on Linux, Windows, macOS, HP-UX, IRIX, BeOS and MorphOS.

Under the hood

Rendering and mechanics

01

Real-time rendering

An OpenGL renderer for textured models, interpolated surface normals, projected shadows and background objects.

02

Classical mechanics

Simulation in standard SI units with configurable mass, inertia, suspension, damping, torque and friction.

03

Independent timing

Variable simulation increments keep CarWorld time independent of the rendering frame rate.

04

Portable foundations

Built on SDL and OpenGL, with support developed and contributed across many operating systems.

Research references

CarWorld beyond the original project.

Released under the GPL, CarWorld was available for researchers to inspect, modify and connect to their own systems. These publications record a few direct uses and references.

  1. Use of the HLA in a Real-Time Multi-Vehicle Simulator

    H. C. Chao, T. W. Pearce and M. J. D. Hayes · CSME 2004 Forum

    Carleton University's CUSP team adapted CarWorld into an HLA-compliant component of a real-time motion-platform simulator, publishing vehicle state to the wider distributed system.

    Read the paper
  2. Coevolution of Active Vision and Feature Selection

    Dario Floreano, Toshifumi Kato, Davide Marocco and Eric Sauser · Biological Cybernetics

    Researchers used CarWorld's first-person visual output while evolving neural controllers for simulated driving.

    View the publication
  3. Evolving Robust and Specialized Car Racing Skills

    Julian Togelius and Simon M. Lucas · IEEE Congress on Evolutionary Computation

    In its review of earlier evolutionary car-racing work, this paper describes the CarWorld-based active-vision experiment.

    Read the paper
  4. Motion Simulation Experiments for Driver Behavior and Road Vehicle Dynamics

    Kemper Lewis, Kevin Hulme, Edward Kasprzak, Deborah Moore-Russo and Gregory Fabiano · ASME

    CarWorld is cited among the game-based driving simulators discussed as context for a motion-simulation research and teaching environment.

    View the publication

From the archive

CarWorld in action

See all platforms

Release history

Selected milestones from the original project history.

  1. 0.245Fixed a crash on exit, missing textures on first launch and incorrect vehicle lighting.
  2. 0.243Added GCC 4.1 support and eliminated Visual Studio 2005 compiler warnings.
  3. 0.239Ported to SDL, compiling with Visual C++ 6 and GCC 3.3.1.
  4. 0.223Networked mode working on Windows 95 and 98.
  5. 0.222Straightened out the truck and added an RPM package target to the Makefile.
  6. 0.219Added DirectX force feedback and automatic restart, removed the GLU dependency and fixed vehicles starting out of balance.
  7. 0.215Improved network support, added the first BeOS port and applied contributed patches.
  8. 1998
    0.190–0.205First release, Linux joystick support and preliminary networked gaming.