swift502/Sketchbook

3D playground built on three.js and cannon.js.

TypeScript

1,753

349 commits

updated Oct 10, 2024

See the code

README


Live demo

Final update (20. Feb 2023)

As I have no more interest in developing this project, it comes to a conclusion. In order to remain honest about the true state of the project, I am archiving this repository.

  • If you wish to modify Sketchbook feel free to fork it.
  • To see if someone is currently maintaining a fork, check out the Network Graph.

📒 Sketchbook

Simple web based game engine built on three.js and cannon.js focused on third-person character controls and related gameplay mechanics.

Mostly a playground for exploring how conventional third person gameplay mechanics found in modern games work and recreating them in a general way.

Features

  • World
    • Three.js scene
    • Cannon.js physics
    • Variable timescale
    • Frame skipping
    • FXAA anti-aliasing
  • Characters
    • Third-person camera
    • Raycast character controller with capsule collisions
    • General state system
    • Character AI
  • Vehicles
    • Cars
    • Airplanes
    • Helicopters

All planned features can be found in the GitHub Projects.

Usage

You can define your own scenes in Blender, and then read them with Sketchbook. Sketchbook needs to run on a local server such as http-server or webpack-dev-server to be able to load external assets.

  1. Import:
<script src="sketchbook.min.js"></script>
  1. Load a glb scene defined in Blender:
const world = new Sketchbook.World('scene.glb');

Contributing

  1. Get the LTS version of Node.js 16
  2. Fork this repository
  3. Run npm install
  4. Run npm run dev
  5. Make changes and test them out at http://localhost:8080
  6. Commit and make a pull request!

Credits

Big thank you to each of the following github users for contributing to Sketchbook:

3d
cannonjs
game-engine
sketchbook
threejs
typescript

swift502/Sketchbook

3D playground built on three.js and cannon.js.

TypeScript

1,753

349 commits

updated Oct 10, 2024

See the code

README


Live demo

Final update (20. Feb 2023)

As I have no more interest in developing this project, it comes to a conclusion. In order to remain honest about the true state of the project, I am archiving this repository.

  • If you wish to modify Sketchbook feel free to fork it.
  • To see if someone is currently maintaining a fork, check out the Network Graph.

📒 Sketchbook

Simple web based game engine built on three.js and cannon.js focused on third-person character controls and related gameplay mechanics.

Mostly a playground for exploring how conventional third person gameplay mechanics found in modern games work and recreating them in a general way.

Features

  • World
    • Three.js scene
    • Cannon.js physics
    • Variable timescale
    • Frame skipping
    • FXAA anti-aliasing
  • Characters
    • Third-person camera
    • Raycast character controller with capsule collisions
    • General state system
    • Character AI
  • Vehicles
    • Cars
    • Airplanes
    • Helicopters

All planned features can be found in the GitHub Projects.

Usage

You can define your own scenes in Blender, and then read them with Sketchbook. Sketchbook needs to run on a local server such as http-server or webpack-dev-server to be able to load external assets.

  1. Import:
<script src="sketchbook.min.js"></script>
  1. Load a glb scene defined in Blender:
const world = new Sketchbook.World('scene.glb');

Contributing

  1. Get the LTS version of Node.js 16
  2. Fork this repository
  3. Run npm install
  4. Run npm run dev
  5. Make changes and test them out at http://localhost:8080
  6. Commit and make a pull request!

Credits

Big thank you to each of the following github users for contributing to Sketchbook:

3d
cannonjs
game-engine
sketchbook
threejs
typescript

Project health

Overall

2.0/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Significant stargazers

Volodymyr Kyrylov

546 followers · starred Apr 2024

mrdoob

25,619 followers · starred Feb 2022

Wen Bo Xie

206 followers · starred Sep 2021

Tiago Vignatti

91 followers · starred Dec 2020