0%

Skateboard Physics Simulator

Rerun
Loading...

Toolbox

System Status: Loading... |
BALL VARIABLES
Weight
Location
Auto Aim Tail
Height
Size
Initial Speed
GENERAL
Gravity
Time Scale
Mass
Auto Calculate Mass
Show Debugger
DECK VARIABLES
Length
Width
Nose Angle
Tail Angle
Hardness
TRUCK VARIABLES
Height
Width
Wheelbase
Front Position
Rear Position
WHEEL VARIABLES
Diameter
Width

About this system

Browser-based 3D physics simulator

Conventional Issues

Before, the only way to test how factors such as "tail angle" and "wheelbase" affect the performance was to buy the actual skateboard. With this system, you can easily and realistically see how different board characteristics affect the skateboard's movement through the innovative technology of a physics engine and 3D technology.

What it does

This innovative approach allows you to verify what kind of boards pop higher or with less force. Simply adjust the various parameters displayed on the browser, and the system will generate the board you want to verify and perform the physics calculations.

How to use

Adjust variables and hit Rerun button

Overview

The physics calculation starts automatically upon opening this page. After setting various parameters, press the "Rerun" button to restart the physics calculation from the beginning. Please note that some parameters are not completed at the time of release.

Example of usage

Here is an example of how to use this system based on an example of adjusting the angle of the kicktail. It is generally believed that the steeper the kicktail angle, the higher it will pop, but does it apply to this system? Set the kick tail angle (18 degrees by default) steeper from the toolbox section. Adjust the ball drop position and nose angle as needed.

Example of simulation results

Pressing the "Rerun" button restarts the physics calculations. You can clearly see the effect of the steep kicktail angle on the pop. You can see that a steeper angle increases the rebound of the entire skateboard, allowing you to pop higher.

Common Questions

Why do objects get stuck?

If the speed of physics calculation is too fast, the object may get stuck in the simulation. Try reducing the simulation speed by adjusting the "Time Scale" parameter in the toolbox.

What should I do when the simulation is too fast, and I can't see what's happening?

By adjusting the "Time Scale" in the toolbox, you can increase the speed of the physics simulation by a factor of up to 0.01 to 2.00. Please adjust the speed to your needs.

How can I stop the simulation?

I have confirmed that the system malfunctions when the "Time Scale" is completely 0. So, stopping time in the physics world is impossible (for now). Instead, it is possible to simulate the case by setting the gravity to 0 to stop the sphere's movement. Adjust the "Weight" from the "BALL VARIABLES" in the toolbox to set the sphere's mass to 0.

Why are there variables I can't adjust?

Sorry. Due to limited development resources (just me), you can't adjust some variables at the time of release. I will add many variables, such as wheelbase and overall weight in the future. We will address them as soon as possible, so please come back and see us again.

What kind of technology is used in this system?

This system consists of a combination of several technologies.

A free modeling software called Blender is used to generate the 3d model of the skateboard. It digitally reproduces a skateboard of approximately the same dimensions as the actual size and generates it as a GLB file.

A Javascript library called Three.js displays the model in a web browser and adds simple shapes, such as spheres, to the 3D world.

To enable the 3D model's physical simulation, a different technology from Three.js is needed, and this is done using a Javascript library called cannon-es. Originally developed as cannon.js, cannon-es is a derivative of cannon.js and is capable of performing physics operations on various objects, such as the ground and spheres.

What features will be included in the future?

We plan to include features such as the function to adjust variables that are currently non-functional, ranking, sharing, and recommending recommended setups.