babylon.quarks 0.17.4 → 0.17.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/LICENSE +21 -21
  3. package/README.md +165 -33
  4. package/dist/babylon.quarks.cjs +1 -1
  5. package/dist/babylon.quarks.cjs.map +1 -1
  6. package/dist/babylon.quarks.esm.js +1 -1
  7. package/dist/babylon.quarks.esm.js.map +1 -1
  8. package/dist/babylon.quarks.umd.min.js +2 -0
  9. package/dist/babylon.quarks.umd.min.js.map +1 -0
  10. package/dist/types/index.d.ts +2829 -19
  11. package/package.json +62 -60
  12. package/src/BatchedParticleRenderer.ts +3 -3
  13. package/src/BatchedRenderer.ts +228 -227
  14. package/src/MeshSurfaceEmitter.ts +137 -137
  15. package/src/ParticleEmitter.ts +86 -86
  16. package/src/ParticleSystem.ts +1322 -1285
  17. package/src/QuarksLoader.ts +529 -510
  18. package/src/QuarksPrefab.ts +307 -307
  19. package/src/QuarksUtil.ts +66 -66
  20. package/src/SpriteBatch.ts +403 -404
  21. package/src/TrailBatch.ts +420 -419
  22. package/src/VFXBatch.ts +108 -108
  23. package/src/geometryUtil.ts +15 -15
  24. package/src/index.ts +59 -52
  25. package/src/materials/ParticleMaterials.ts +23 -23
  26. package/src/materials/index.ts +1 -1
  27. package/src/shaders/chunks/index.ts +1 -1
  28. package/src/shaders/chunks/register-shader-chunks.ts +32 -32
  29. package/src/shaders/chunks/soft_fragment.glsl.ts +13 -13
  30. package/src/shaders/chunks/soft_pars_fragment.glsl.ts +20 -20
  31. package/src/shaders/chunks/soft_pars_vertex.glsl.ts +6 -6
  32. package/src/shaders/chunks/soft_vertex.glsl.ts +6 -6
  33. package/src/shaders/chunks/tile_fragment.glsl.ts +9 -9
  34. package/src/shaders/chunks/tile_pars_fragment.glsl.ts +9 -9
  35. package/src/shaders/chunks/tile_pars_vertex.glsl.ts +28 -28
  36. package/src/shaders/chunks/tile_vertex.glsl.ts +18 -18
  37. package/src/shaders/index.ts +9 -9
  38. package/src/shaders/local_particle_physics_vert.glsl.ts +79 -79
  39. package/src/shaders/local_particle_vert.glsl.ts +50 -50
  40. package/src/shaders/particle_frag.glsl.ts +61 -61
  41. package/src/shaders/particle_physics_frag.glsl.ts +67 -67
  42. package/src/shaders/particle_vert.glsl.ts +85 -85
  43. package/src/shaders/stretched_bb_particle_vert.glsl.ts +74 -74
  44. package/src/shaders/trail_frag.glsl.ts +21 -21
  45. package/src/shaders/trail_vert.glsl.ts +58 -58
  46. package/dist/types/BatchedParticleRenderer.d.ts +0 -2
  47. package/dist/types/BatchedRenderer.d.ts +0 -59
  48. package/dist/types/MeshSurfaceEmitter.d.ts +0 -19
  49. package/dist/types/ParticleEmitter.d.ts +0 -16
  50. package/dist/types/ParticleSystem.d.ts +0 -234
  51. package/dist/types/QuarksLoader.d.ts +0 -28
  52. package/dist/types/QuarksPrefab.d.ts +0 -48
  53. package/dist/types/QuarksUtil.d.ts +0 -14
  54. package/dist/types/SpriteBatch.d.ts +0 -33
  55. package/dist/types/TrailBatch.d.ts +0 -28
  56. package/dist/types/VFXBatch.d.ts +0 -51
  57. package/dist/types/geometryUtil.d.ts +0 -2
  58. package/dist/types/materials/ParticleMaterials.d.ts +0 -12
  59. package/dist/types/materials/index.d.ts +0 -1
  60. package/dist/types/shaders/chunks/index.d.ts +0 -1
  61. package/dist/types/shaders/chunks/register-shader-chunks.d.ts +0 -3
  62. package/dist/types/shaders/chunks/soft_fragment.glsl.d.ts +0 -2
  63. package/dist/types/shaders/chunks/soft_pars_fragment.glsl.d.ts +0 -2
  64. package/dist/types/shaders/chunks/soft_pars_vertex.glsl.d.ts +0 -2
  65. package/dist/types/shaders/chunks/soft_vertex.glsl.d.ts +0 -2
  66. package/dist/types/shaders/chunks/tile_fragment.glsl.d.ts +0 -2
  67. package/dist/types/shaders/chunks/tile_pars_fragment.glsl.d.ts +0 -2
  68. package/dist/types/shaders/chunks/tile_pars_vertex.glsl.d.ts +0 -2
  69. package/dist/types/shaders/chunks/tile_vertex.glsl.d.ts +0 -2
  70. package/dist/types/shaders/index.d.ts +0 -9
  71. package/dist/types/shaders/local_particle_physics_vert.glsl.d.ts +0 -2
  72. package/dist/types/shaders/local_particle_vert.glsl.d.ts +0 -2
  73. package/dist/types/shaders/particle_frag.glsl.d.ts +0 -2
  74. package/dist/types/shaders/particle_physics_frag.glsl.d.ts +0 -2
  75. package/dist/types/shaders/particle_vert.glsl.d.ts +0 -2
  76. package/dist/types/shaders/stretched_bb_particle_vert.glsl.d.ts +0 -2
  77. package/dist/types/shaders/trail_frag.glsl.d.ts +0 -2
  78. package/dist/types/shaders/trail_vert.glsl.d.ts +0 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,92 @@
1
+ # Changelog
2
+
3
+ All notable changes to the `babylon.quarks` package are documented here.
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
+ and the project follows the `quarks.core` 0.x version line.
6
+
7
+ ## [0.17.5] — 2026-07-02
8
+
9
+ ### Added
10
+
11
+ - UMD/CDN bundle `dist/babylon.quarks.umd.min.js` exposing the `BabylonQuarks` global —
12
+ usable in the Babylon.js Playground and plain `<script>` setups. `quarks.core` is bundled in;
13
+ `@babylonjs/core` maps to the `BABYLON` global. `unpkg`/`jsdelivr` fields point to it.
14
+ - WebGPU support validated: all render modes (billboard, stretched billboard, mesh, trail)
15
+ create pipelines under `WebGPUEngine` with zero validation errors (GLSL is transpiled to WGSL
16
+ by Babylon automatically). Documented in the README.
17
+ - Exported types that the public API referenced but did not export:
18
+ `AdaptivePerformanceOptions`, `AdaptivePerformanceState`, `ParticleSystemJSONParameters`,
19
+ `BabylonMetaData`, `AnimationData`, `QuarksTimelineClip`, `BurstParametersJSON`.
20
+ - API documentation generated with TypeDoc, published at
21
+ <https://soullnik.github.io/babylon.quarks-standalone/docs/>.
22
+
23
+ ### Changed
24
+
25
+ - `SpriteBatch` and `QuarksLoader` pass typed arrays to Babylon `VertexData` directly instead
26
+ of copying them through `Array.from`.
27
+ - `BatchedRenderer` internals use typed `ParticleSystem` narrowing instead of `as any` casts
28
+ (public signatures unchanged).
29
+
30
+ ### CI
31
+
32
+ - npm publishing switched to trusted publishing (OIDC) with provenance.
33
+
34
+ ## [0.17.4] — 2026-05-15
35
+
36
+ ### Changed
37
+
38
+ - `QuarksLoader` test coverage reworked; demo application restructured (new demos, hero
39
+ background). No functional changes to the package runtime.
40
+
41
+ ## [0.17.3] — 2026-05-13
42
+
43
+ ### Added
44
+
45
+ - Adaptive performance budget controls on `BatchedRenderer`
46
+ (`configureAdaptivePerformance` / `disableAdaptivePerformance` / `getAdaptivePerformanceState`)
47
+ with per-system quality scaling.
48
+
49
+ ### Performance
50
+
51
+ - Tightened particle system update and spawn loops.
52
+ - Reduced hot-path allocations in renderer batches.
53
+ - Fast trail history ring buffers for trail rendering.
54
+
55
+ ### Tests
56
+
57
+ - Extensive coverage expansion (sprite/trail batch integration, particle system, loader,
58
+ prefab and utility paths) with enforced coverage thresholds.
59
+
60
+ ## [0.17.2] — 2026-05-11
61
+
62
+ ### Fixed
63
+
64
+ - `QuarksLoader` marks sub-emitter systems as `onlyUsedByOther` after UUID resolution.
65
+ - Custom blending mode handling refined.
66
+
67
+ ### Added
68
+
69
+ - Tile blending support in shaders (additional UV calculations).
70
+
71
+ ## [0.17.1] — 2026-05-11
72
+
73
+ ### Changed
74
+
75
+ - Packaging setup for the standalone monorepo (README shipped with the package,
76
+ tarball content checks).
77
+
78
+ ## [0.17.0] — 2026-05-11
79
+
80
+ ### Added
81
+
82
+ - Initial public release: a high-performance batched particle system for Babylon.js built on
83
+ `quarks.core` — batched sprite/trail rendering, billboard/stretched/mesh/trail render modes,
84
+ soft particles, texture tile animation, sub-emitters, mesh surface emitter plugin,
85
+ `QuarksLoader` for quarks.art / Unity-exported JSON, `QuarksUtil` helpers.
86
+
87
+ [0.17.5]: https://github.com/Soullnik/babylon.quarks-standalone/releases/tag/v0.17.5
88
+ [0.17.4]: https://www.npmjs.com/package/babylon.quarks/v/0.17.4
89
+ [0.17.3]: https://www.npmjs.com/package/babylon.quarks/v/0.17.3
90
+ [0.17.2]: https://www.npmjs.com/package/babylon.quarks/v/0.17.2
91
+ [0.17.1]: https://www.npmjs.com/package/babylon.quarks/v/0.17.1
92
+ [0.17.0]: https://www.npmjs.com/package/babylon.quarks/v/0.17.0
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 soullnik
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 soullnik
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,33 +1,165 @@
1
- # babylon.quarks
2
-
3
- High-performance particle system for [Babylon.js](https://www.babylonjs.com/). Built on [quarks.art](https://quarks.art/) (`quarks.core`).
4
-
5
- ## Install
6
-
7
- ```bash
8
- npm install babylon.quarks @babylonjs/core
9
- ```
10
-
11
- Peer dependency: `@babylonjs/core` >= 9.
12
-
13
- ## Quick start
14
-
15
- ```ts
16
- import { BatchedRenderer, ParticleSystem } from "babylon.quarks";
17
-
18
- const batchRenderer = new BatchedRenderer("particles", scene);
19
- // Create ParticleSystem instances, add them to your scene logic, then each frame:
20
- // batchRenderer.update(deltaTimeInSeconds);
21
- ```
22
-
23
- See the [examples app](https://github.com/Soullnik/babylon.quarks-standalone/tree/main/examples) in the monorepo for interactive demos and usage patterns.
24
-
25
- ## Links
26
-
27
- - [npm package](https://www.npmjs.com/package/babylon.quarks)
28
- - [Source (monorepo)](https://github.com/Soullnik/babylon.quarks-standalone/tree/main/packages/babylon.quarks)
29
- - [Issues](https://github.com/Soullnik/babylon.quarks-standalone/issues)
30
-
31
- ## License
32
-
33
- MIT
1
+ # babylon.quarks
2
+
3
+ [![npm version](https://img.shields.io/npm/v/babylon.quarks)](https://www.npmjs.com/package/babylon.quarks)
4
+ [![CI](https://github.com/Soullnik/babylon.quarks-standalone/actions/workflows/ci.yml/badge.svg)](https://github.com/Soullnik/babylon.quarks-standalone/actions/workflows/ci.yml)
5
+ [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Soullnik/babylon.quarks-standalone/blob/main/LICENSE)
6
+
7
+ High-performance particle system for [Babylon.js](https://www.babylonjs.com/). Built on [quarks.art](https://quarks.art/) (`quarks.core`).
8
+
9
+ [**Live demos**](https://soullnik.github.io/babylon.quarks-standalone/)
10
+
11
+ | | | | |
12
+ |---|---|---|---|
13
+ | [![Muzzle Flash](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/muzzle-flash.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#MuzzleFlashDemo) | [![Explosion](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/explosion.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#ExplosionDemo) | [![Trail](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/trail.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#TrailDemo) | [![Sub Emitter](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/sub-emitter.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#SubEmitterDemo) |
14
+ | [![Electric Ball](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/electric-ball.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#ElectricBallDemo) | [![Black Hole](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/black-hole.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#BlackHoleDemo) | [![Soft Particles](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/soft-particle.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#SoftParticleDemo) | [![Level-Up](https://raw.githubusercontent.com/Soullnik/babylon.quarks-standalone/main/examples/public/previews/level-up.png)](https://soullnik.github.io/babylon.quarks-standalone/babylonDemo.html#LevelUpDemo) |
15
+
16
+ ## Features
17
+
18
+ - **Batched rendering** — heterogeneous particle systems share draw calls via `BatchedRenderer`.
19
+ - **Render modes** — billboard, vertical/horizontal billboard, stretched billboard, mesh particles, and **trails** (not available in Babylon's built-in particle systems).
20
+ - **Sub-emitters** and a rich set of composable behaviors (color/size/speed over life, noise turbulence, forces, and more from `quarks.core`).
21
+ - **Soft particles**, texture tile animation with blending, custom blend functions.
22
+ - **Visual authoring** — create effects in the [quarks.art](https://quarks.art/) editor (or export from Unity) and load them with `QuarksLoader`.
23
+ - **Cross-engine format** — the same effect JSON runs in three.js (three.quarks) and Babylon.js.
24
+ - **Adaptive performance** — optional frame-budget quality scaling built into `BatchedRenderer`.
25
+ - **WebGL and WebGPU** — runs on both Babylon engines; shaders are transpiled to WGSL automatically.
26
+
27
+ ## Install
28
+
29
+ ```bash
30
+ npm install babylon.quarks @babylonjs/core
31
+ ```
32
+
33
+ Peer dependency: `@babylonjs/core` >= 9.
34
+
35
+ ## Quick start
36
+
37
+ ```ts
38
+ import {Constants} from "@babylonjs/core/Engines/constants";
39
+ import {
40
+ BatchedRenderer,
41
+ ParticleSystem,
42
+ PointEmitter,
43
+ RenderMode,
44
+ ConstantValue,
45
+ IntervalValue,
46
+ ConstantColor,
47
+ Vector4,
48
+ } from "babylon.quarks";
49
+
50
+ // One renderer per scene; it batches all systems added to it.
51
+ const batchRenderer = new BatchedRenderer("particles", scene);
52
+
53
+ const system = new ParticleSystem({
54
+ scene,
55
+ duration: 5,
56
+ looping: true,
57
+ startLife: new IntervalValue(4, 5),
58
+ startSpeed: new ConstantValue(1),
59
+ startSize: new IntervalValue(1, 2),
60
+ startColor: new ConstantColor(new Vector4(1, 1, 1, 1)),
61
+ emissionOverTime: new ConstantValue(20),
62
+ shape: new PointEmitter(),
63
+ renderMode: RenderMode.BillBoard,
64
+ texture: myParticleTexture,
65
+ transparent: true,
66
+ blendMode: Constants.ALPHA_COMBINE,
67
+ });
68
+ batchRenderer.addSystem(system);
69
+
70
+ // Advance the simulation every frame:
71
+ scene.onBeforeRenderObservable.add(() => {
72
+ batchRenderer.update(scene.getEngine().getDeltaTime() / 1000);
73
+ });
74
+ ```
75
+
76
+ ## Use in the Babylon.js Playground
77
+
78
+ The package ships a UMD bundle (`dist/babylon.quarks.umd.min.js`, exposed as the `BabylonQuarks` global) that can be loaded straight from a CDN — no build step needed. Paste this into the [Playground](https://playground.babylonjs.com/):
79
+
80
+ ```js
81
+ var createScene = async function () {
82
+ var scene = new BABYLON.Scene(engine);
83
+ var camera = new BABYLON.ArcRotateCamera("cam", -Math.PI / 2, 1.2, 10, BABYLON.Vector3.Zero(), scene);
84
+ camera.attachControl(canvas, true);
85
+
86
+ await BABYLON.Tools.LoadScriptAsync("https://cdn.jsdelivr.net/npm/babylon.quarks/dist/babylon.quarks.umd.min.js");
87
+ const Q = BabylonQuarks;
88
+
89
+ const batchRenderer = new Q.BatchedRenderer("particles", scene);
90
+ const system = new Q.ParticleSystem({
91
+ scene,
92
+ duration: 5,
93
+ looping: true,
94
+ startLife: new Q.IntervalValue(2, 3),
95
+ startSpeed: new Q.ConstantValue(2),
96
+ startSize: new Q.IntervalValue(0.5, 1),
97
+ startColor: new Q.ConstantColor(new Q.Vector4(1, 0.6, 0.2, 1)),
98
+ emissionOverTime: new Q.ConstantValue(60),
99
+ shape: new Q.ConeEmitter({radius: 0.3, angle: 0.4}),
100
+ renderMode: Q.RenderMode.BillBoard,
101
+ texture: new BABYLON.Texture("textures/flare.png", scene),
102
+ transparent: true,
103
+ blendMode: BABYLON.Constants.ALPHA_ADD,
104
+ });
105
+ batchRenderer.addSystem(system);
106
+
107
+ scene.onBeforeRenderObservable.add(() => {
108
+ batchRenderer.update(engine.getDeltaTime() / 1000);
109
+ });
110
+
111
+ return scene;
112
+ };
113
+ ```
114
+
115
+ The same bundle works in any plain `<script>` setup alongside the global `babylon.js` build:
116
+
117
+ ```html
118
+ <script src="https://cdn.babylonjs.com/babylon.js"></script>
119
+ <script src="https://cdn.jsdelivr.net/npm/babylon.quarks/dist/babylon.quarks.umd.min.js"></script>
120
+ ```
121
+
122
+ ## WebGPU
123
+
124
+ The library runs on Babylon's `WebGPUEngine` — its GLSL shaders are transpiled to WGSL automatically by Babylon (glslang/twgsl are fetched by Babylon on engine init). Everything except engine creation stays the same:
125
+
126
+ ```ts
127
+ import {WebGPUEngine} from "@babylonjs/core/Engines/webgpuEngine";
128
+ import "@babylonjs/core/Engines/WebGPU/Extensions/index";
129
+
130
+ const engine = new WebGPUEngine(canvas, {antialias: true});
131
+ await engine.initAsync();
132
+ // Scene + BatchedRenderer setup is identical to WebGL.
133
+ ```
134
+
135
+ All render modes (billboard, stretched billboard, mesh, trail) are validated to create WebGPU pipelines with zero validation errors. The [live demos](https://soullnik.github.io/babylon.quarks-standalone/) and the [benchmark page](https://soullnik.github.io/babylon.quarks-standalone/benchmark.html) accept `?engine=webgpu` in the URL to switch engines.
136
+
137
+ ## Load effects from quarks.art / Unity
138
+
139
+ Author an effect in the [quarks.art editor](https://quarks.art/) (or export from Unity), then load the JSON:
140
+
141
+ ```ts
142
+ import {BatchedRenderer, QuarksLoader, QuarksUtil} from "babylon.quarks";
143
+
144
+ const batchRenderer = new BatchedRenderer("particles", scene);
145
+ const loader = new QuarksLoader(scene);
146
+ const effect = await loader.load("effects/explosion.json");
147
+ QuarksUtil.addToBatchRenderer(effect, batchRenderer);
148
+ QuarksUtil.play(effect);
149
+ ```
150
+
151
+ See the [examples app](https://github.com/Soullnik/babylon.quarks-standalone/tree/main/examples) in the monorepo for 18 interactive demos and usage patterns.
152
+
153
+ ## Links
154
+
155
+ - [API documentation](https://soullnik.github.io/babylon.quarks-standalone/docs/)
156
+ - [Changelog](https://github.com/Soullnik/babylon.quarks-standalone/blob/main/packages/babylon.quarks/CHANGELOG.md)
157
+ - [Contributing](https://github.com/Soullnik/babylon.quarks-standalone/blob/main/CONTRIBUTING.md)
158
+ - [npm package](https://www.npmjs.com/package/babylon.quarks)
159
+ - [Source (monorepo)](https://github.com/Soullnik/babylon.quarks-standalone/tree/main/packages/babylon.quarks)
160
+ - [Roadmap](https://github.com/Soullnik/babylon.quarks-standalone/blob/main/ROADMAP.md)
161
+ - [Issues](https://github.com/Soullnik/babylon.quarks-standalone/issues)
162
+
163
+ ## License
164
+
165
+ MIT