<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 asautoresize: 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 🚀
GAME EXAMPLE 🎮
INSTALLATION ⤬ USAGE
NODE
npm install whitestormjs
BROWSER
Include a script tag linking the WhitestormJS library in your head
or after your body
:
After adding these libraries, you can configure your app:
const world = stats: "fps" // fps, ms, mb or false if not need. autoresize: true gravity: // Physic gravity. x: 0 y: -100 z: 0 camera: z: 50 // Move camera. ; const sphere = // Create sphere object. geometry: radius: 3 mass: 10 // Mass of physics object. material: color: 0xffffff kind: 'basic' pos: x: 0 y: 100 z: 0 ; sphere;sphere; // Returns THREE.Mesh of this object. worldstart; // Start animations and physics simulation.
Examples:
👾 BASIC:
- Basic / Hello world (Basic "Hello world!" example.)
- Basic / Model (Basic model example.)
- Basic / Debugging (Object's debug example.)
- Basic / Extending API (Extending api example.)
- Basic / Softbody (Basic softbody implementation.)
- Basic / Three.js (Importing three.js scene to whitestormjs core.)
- Basic / Cloth (Example of softbody cloth.)
- Basic / Cloth 2 (Example of softbody cloth 2.)
- Basic / Cloth 3 (Example of softbody cloth 3.)
💎 DESIGN:
- Design / Saturn (Saturn planet example from: http://codepen.io/Yakudoo/pen/qbygaJ)
- Design / Easter (Easter rabbit with easter eggs.)
- Design / Points (Using WHS.Points to make a point cloud shaped in cube.)
🏂 FIRST-PERSON:
- FPS / Shooter (First person example with Wagner effects and terrain. + fog) [TODO]
- FPS / Fog (First person game with animated objects) [TODO]
🎳 PHYSICS:
- Physics / Dominos (Physics example with dominos.)
🚀 PERFORMANCE:
- Performance / Sticks (Collisions performance of 320 basic box objects.)
- Performance / Softbodies (Collisions performance of 30 softbody icosahedron objects.)