Based on Cloner System extension https://github.com/androdlang/Extensions/tree/master/ClonerSystem by https://github.com/androdlang
More info and docs here - https://doc.babylonjs.com/communityExtensions/clonerSystem
Definitions:
The demo with all cloners (animated) - https://clonersystem.babylonpress.org/ (the default example scene for this repo)
The demo with all cloners (static) - https://babylonpress.org/cloner/
Extensive old version documentation - https://doc.babylonjs.com/communityExtensions/clonerSystem
https://playground.babylonjs.com/#1MYQ3T#47
https://playground.babylonjs.com/#1WRUHY#2
https://www.babylonjs-playground.com/#1NYYEQ#5
https://www.babylonjs-playground.com/#1NYYEQ#6
https://www.babylonjs-playground.com/#1NYYEQ#7
https://playground.babylonjs.com/#JWETXJ#0
Import is done through src/clonersystem/index.ts.
You may import the whole ClonerSystem and then use like ClonerSystem.MatrixCloner etc.
Or, for better tree shaking, import them like
import { RandomEffector } from "../clonersystem";
import { MatrixCloner } from "../clonersystem"
Then use like
const mc = new MatrixCloner([capsule, box, sphere], scene, { mcount: { x: 5, y: 5, z: 5 }, }); mc.root!.position = new Vector3(-10, 0, 15); const rr = new RandomEffector(); rr.strength = 1; rr.position = { x: 2, y: 0, z: 2 }; rr.rotation = { x: 70, y: 30, z: 0 }; mc.addEffector(rr, 1);
This is a Babylon.js project using typescript, latest babylon.js es6 core module, webpack 4 with webpack dev server, hot loading, eslint, vscode support and more.
To run the basic Cloner System scene (with some animations):
npm install
to install the needed dependencies.npm start
http://localhost:8080
Running npm start
will start the webpack dev server with hot-reloading turned on.
The ./src/scenes
directory contains one example of the scene that can be loaded. To load a different scene change the import in ./src/createScene.ts
to the scene you want to load.
Open the URL in a webgpu-enabled browser and add "?engine=webgpu" to the URL. http://localhost:8080/?engine=webgpu
.
Example: https://clonersystem.babylonpress.org/?engine=webgpu
To generate documentation use
npx typedoc --out docs src/clonersystem/index.ts