What you’ll learn

  • You will have a knowledge of the THREE js library.
  • You will have a working knowledge of how a physics engine works. Particularly CANNON js
  • You will know how to adapt your assets to work with the CANNON RayCastVehicle class.
  • You’ll know how to use the position and rotation information from the physics engine and apply it to your assets.
  • You will know how to use colliders in your scene to prevent your car driving through your 3d environment.


Creating a car racing game that works in a browser including mobile devices has never been easier. Using the two Open Source libraries THREE.js and CANNON.js this course takes you through the steps you will need to know and builds towards a complete car racing game. On the way you will learn

  1. How to setup your development environment
  2. How to access free and low cost assets to use in your game.
  3. How to edit those assets to work with the THREE.js and CANNON.js libraries.
  4. How to use THREE.js to add 3D to an HTML page.
  5. The basics of THREE.js lights, cameras and meshes.
  6. The basics of the CANNON.js library, including rigid bodies.
  7. How to debug your physics either using the CannonDebugRenderer or using the CannonHelper class created by the author. Both are included in the resources for the course.
  8. How to use the CANNON.RayCastVehicle class to add a car with suspension and fully working wheels.
  9. How to apply your own assets to the RayCastVehicle and add colliders so it bumps into your content.
  10. How to add a responsive GUI to the game

The course includes the assets for car racing game as shown in the course image and promo video. The author has won awards for the 3D games he has produced. Learn from an expert who has been creating games for over 30 years. The game we’ll develop allows the player to choose from optional, body, engine, exhaust and wheels. It involves driving a remote controlled car around a garden track.

It’s a great way to improve your JavaScript skills along the way. All code uses the latest ES6 style, using classes throughout.

Link description