<p align="center"><i><b>Framework for developing 3D web apps with physics.</b></i></p>
FEATURES
-
Simple shape crafting — We use a JSON-like structure for creating objects from inputted data and adding them to your 3D world.
-
Physics with WebWorkers — We use the Physi.js library for calculating physics of 3D shapes with WebWorkers technology that allows for rendering and calculating physics in multiple threads.
-
Plugin system — Our framework supports plugins & components made by other users. You need to include them after whitestorm.js and follow provided instructions.
-
Automatization of rendering — Our framework does rendering automatically and doesn't need a to be called. Functionality like the resize
function can be called automatically by setting additional parameters such as autoresize: true
.
-
ES6 Features - Our framework is written using the latest features of ECMAScript 6 and ECMAScript 7 (beta) features and compiled with Babel.
-
Softbodies - WhitestormJS is the only engine (except native ammo.js) that supports softbodies.
PLAYGROUND :rocket:
GAME EXAMPLE :video_game:
INSTALLATION ⤬ USAGE
NODE
npm install whitestormjs
BROWSER
Include a script tag linking the WhitestormJS library in your head
or after your body
:
<script src="{path_to_lib}/whitestorm.js"></script>
After adding these libraries, you can configure your app:
const world = new WHS.World({
stats: "fps",
autoresize: true,
gravity: {
x: 0,
y: -100,
z: 0
},
camera: {
z: 50
}
});
const sphere = new WHS.Sphere({
geometry: {
radius: 3
},
mass: 10,
material: {
color: 0xffffff,
kind: 'basic'
},
pos: {
x: 0,
y: 100,
z: 0
}
});
sphere.addTo(GAME);
sphere.getNative();
world.start();
:space_invader: BASIC:
:gem: DESIGN:
:snowboarder: FIRST-PERSON:
- FPS / Shooter (First person example with Wagner effects and terrain. + fog) [TODO]
- FPS / Fog (First person game with animated objects) [TODO]
:bowling: PHYSICS:
:rocket: PERFORMANCE: