@dano796/react-reart 0.1.0
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.
- package/LICENSE.md +25 -0
- package/README.md +222 -0
- package/cli/build-registry.mjs +128 -0
- package/cli/index.js +396 -0
- package/cli/registry.json +873 -0
- package/dist/components/BackgroundStudio.d.ts +10 -0
- package/dist/components/BackgroundStudio.d.ts.map +1 -0
- package/dist/components/BackgroundStudio.js +268 -0
- package/dist/components/BackgroundStudio.js.map +1 -0
- package/dist/components/FlowCurrents.d.ts +24 -0
- package/dist/components/FlowCurrents.d.ts.map +1 -0
- package/dist/components/FlowCurrents.js +79 -0
- package/dist/components/FlowCurrents.js.map +1 -0
- package/dist/components/GeoPulse.d.ts +20 -0
- package/dist/components/GeoPulse.d.ts.map +1 -0
- package/dist/components/GeoPulse.js +72 -0
- package/dist/components/GeoPulse.js.map +1 -0
- package/dist/components/GravityStorm.d.ts +20 -0
- package/dist/components/GravityStorm.d.ts.map +1 -0
- package/dist/components/GravityStorm.js +72 -0
- package/dist/components/GravityStorm.js.map +1 -0
- package/dist/components/WaveEther.d.ts +21 -0
- package/dist/components/WaveEther.d.ts.map +1 -0
- package/dist/components/WaveEther.js +73 -0
- package/dist/components/WaveEther.js.map +1 -0
- package/dist/components/backgrounds/AmbientMesh.d.ts +38 -0
- package/dist/components/backgrounds/AmbientMesh.d.ts.map +1 -0
- package/dist/components/backgrounds/AmbientMesh.js +101 -0
- package/dist/components/backgrounds/AmbientMesh.js.map +1 -0
- package/dist/components/backgrounds/ArborealGrowth.d.ts +26 -0
- package/dist/components/backgrounds/ArborealGrowth.d.ts.map +1 -0
- package/dist/components/backgrounds/ArborealGrowth.js +78 -0
- package/dist/components/backgrounds/ArborealGrowth.js.map +1 -0
- package/dist/components/backgrounds/CliffordAttractor.d.ts +24 -0
- package/dist/components/backgrounds/CliffordAttractor.d.ts.map +1 -0
- package/dist/components/backgrounds/CliffordAttractor.js +86 -0
- package/dist/components/backgrounds/CliffordAttractor.js.map +1 -0
- package/dist/components/backgrounds/CrystallineDrift.d.ts +33 -0
- package/dist/components/backgrounds/CrystallineDrift.d.ts.map +1 -0
- package/dist/components/backgrounds/CrystallineDrift.js +101 -0
- package/dist/components/backgrounds/CrystallineDrift.js.map +1 -0
- package/dist/components/backgrounds/DifferentialGrowth.d.ts +9 -0
- package/dist/components/backgrounds/DifferentialGrowth.d.ts.map +1 -0
- package/dist/components/backgrounds/DifferentialGrowth.js +82 -0
- package/dist/components/backgrounds/DifferentialGrowth.js.map +1 -0
- package/dist/components/backgrounds/DoublePendulum.d.ts +9 -0
- package/dist/components/backgrounds/DoublePendulum.d.ts.map +1 -0
- package/dist/components/backgrounds/DoublePendulum.js +81 -0
- package/dist/components/backgrounds/DoublePendulum.js.map +1 -0
- package/dist/components/backgrounds/DragonCurve.d.ts +27 -0
- package/dist/components/backgrounds/DragonCurve.d.ts.map +1 -0
- package/dist/components/backgrounds/DragonCurve.js +79 -0
- package/dist/components/backgrounds/DragonCurve.js.map +1 -0
- package/dist/components/backgrounds/DragonFold.d.ts +31 -0
- package/dist/components/backgrounds/DragonFold.d.ts.map +1 -0
- package/dist/components/backgrounds/DragonFold.js +94 -0
- package/dist/components/backgrounds/DragonFold.js.map +1 -0
- package/dist/components/backgrounds/EmberCascade.d.ts +24 -0
- package/dist/components/backgrounds/EmberCascade.d.ts.map +1 -0
- package/dist/components/backgrounds/EmberCascade.js +88 -0
- package/dist/components/backgrounds/EmberCascade.js.map +1 -0
- package/dist/components/backgrounds/FibonacciVortex.d.ts +42 -0
- package/dist/components/backgrounds/FibonacciVortex.d.ts.map +1 -0
- package/dist/components/backgrounds/FibonacciVortex.js +151 -0
- package/dist/components/backgrounds/FibonacciVortex.js.map +1 -0
- package/dist/components/backgrounds/FlowCurrents.d.ts +35 -0
- package/dist/components/backgrounds/FlowCurrents.d.ts.map +1 -0
- package/dist/components/backgrounds/FlowCurrents.js +97 -0
- package/dist/components/backgrounds/FlowCurrents.js.map +1 -0
- package/dist/components/backgrounds/FractalNoiseTerrain.d.ts +9 -0
- package/dist/components/backgrounds/FractalNoiseTerrain.d.ts.map +1 -0
- package/dist/components/backgrounds/FractalNoiseTerrain.js +85 -0
- package/dist/components/backgrounds/FractalNoiseTerrain.js.map +1 -0
- package/dist/components/backgrounds/FractalTree.d.ts +35 -0
- package/dist/components/backgrounds/FractalTree.d.ts.map +1 -0
- package/dist/components/backgrounds/FractalTree.js +98 -0
- package/dist/components/backgrounds/FractalTree.js.map +1 -0
- package/dist/components/backgrounds/GeoPulse.d.ts +31 -0
- package/dist/components/backgrounds/GeoPulse.d.ts.map +1 -0
- package/dist/components/backgrounds/GeoPulse.js +89 -0
- package/dist/components/backgrounds/GeoPulse.js.map +1 -0
- package/dist/components/backgrounds/GravityStorm.d.ts +30 -0
- package/dist/components/backgrounds/GravityStorm.d.ts.map +1 -0
- package/dist/components/backgrounds/GravityStorm.js +89 -0
- package/dist/components/backgrounds/GravityStorm.js.map +1 -0
- package/dist/components/backgrounds/HarmonicLattice.d.ts +26 -0
- package/dist/components/backgrounds/HarmonicLattice.d.ts.map +1 -0
- package/dist/components/backgrounds/HarmonicLattice.js +89 -0
- package/dist/components/backgrounds/HarmonicLattice.js.map +1 -0
- package/dist/components/backgrounds/HexRipple.d.ts +44 -0
- package/dist/components/backgrounds/HexRipple.d.ts.map +1 -0
- package/dist/components/backgrounds/HexRipple.js +149 -0
- package/dist/components/backgrounds/HexRipple.js.map +1 -0
- package/dist/components/backgrounds/KochCrystal.d.ts +27 -0
- package/dist/components/backgrounds/KochCrystal.d.ts.map +1 -0
- package/dist/components/backgrounds/KochCrystal.js +79 -0
- package/dist/components/backgrounds/KochCrystal.js.map +1 -0
- package/dist/components/backgrounds/LissajousWeave.d.ts +23 -0
- package/dist/components/backgrounds/LissajousWeave.d.ts.map +1 -0
- package/dist/components/backgrounds/LissajousWeave.js +86 -0
- package/dist/components/backgrounds/LissajousWeave.js.map +1 -0
- package/dist/components/backgrounds/MoireLattice.d.ts +9 -0
- package/dist/components/backgrounds/MoireLattice.d.ts.map +1 -0
- package/dist/components/backgrounds/MoireLattice.js +81 -0
- package/dist/components/backgrounds/MoireLattice.js.map +1 -0
- package/dist/components/backgrounds/NebulaVeil.d.ts +28 -0
- package/dist/components/backgrounds/NebulaVeil.d.ts.map +1 -0
- package/dist/components/backgrounds/NebulaVeil.js +121 -0
- package/dist/components/backgrounds/NebulaVeil.js.map +1 -0
- package/dist/components/backgrounds/NeuralWeave.d.ts +9 -0
- package/dist/components/backgrounds/NeuralWeave.d.ts.map +1 -0
- package/dist/components/backgrounds/NeuralWeave.js +81 -0
- package/dist/components/backgrounds/NeuralWeave.js.map +1 -0
- package/dist/components/backgrounds/OrbitalResonance.d.ts +9 -0
- package/dist/components/backgrounds/OrbitalResonance.d.ts.map +1 -0
- package/dist/components/backgrounds/OrbitalResonance.js +86 -0
- package/dist/components/backgrounds/OrbitalResonance.js.map +1 -0
- package/dist/components/backgrounds/PhotonBurst.d.ts +41 -0
- package/dist/components/backgrounds/PhotonBurst.d.ts.map +1 -0
- package/dist/components/backgrounds/PhotonBurst.js +150 -0
- package/dist/components/backgrounds/PhotonBurst.js.map +1 -0
- package/dist/components/backgrounds/PhyllotaxisDream.d.ts +25 -0
- package/dist/components/backgrounds/PhyllotaxisDream.d.ts.map +1 -0
- package/dist/components/backgrounds/PhyllotaxisDream.js +88 -0
- package/dist/components/backgrounds/PhyllotaxisDream.js.map +1 -0
- package/dist/components/backgrounds/PlasmaField.d.ts +28 -0
- package/dist/components/backgrounds/PlasmaField.d.ts.map +1 -0
- package/dist/components/backgrounds/PlasmaField.js +117 -0
- package/dist/components/backgrounds/PlasmaField.js.map +1 -0
- package/dist/components/backgrounds/PrismaticWave.d.ts +46 -0
- package/dist/components/backgrounds/PrismaticWave.d.ts.map +1 -0
- package/dist/components/backgrounds/PrismaticWave.js +152 -0
- package/dist/components/backgrounds/PrismaticWave.js.map +1 -0
- package/dist/components/backgrounds/ReactionDiffusion.d.ts +9 -0
- package/dist/components/backgrounds/ReactionDiffusion.d.ts.map +1 -0
- package/dist/components/backgrounds/ReactionDiffusion.js +79 -0
- package/dist/components/backgrounds/ReactionDiffusion.js.map +1 -0
- package/dist/components/backgrounds/RecursiveSubdivision.d.ts +9 -0
- package/dist/components/backgrounds/RecursiveSubdivision.d.ts.map +1 -0
- package/dist/components/backgrounds/RecursiveSubdivision.js +84 -0
- package/dist/components/backgrounds/RecursiveSubdivision.js.map +1 -0
- package/dist/components/backgrounds/RecursiveTunnel.d.ts +44 -0
- package/dist/components/backgrounds/RecursiveTunnel.d.ts.map +1 -0
- package/dist/components/backgrounds/RecursiveTunnel.js +155 -0
- package/dist/components/backgrounds/RecursiveTunnel.js.map +1 -0
- package/dist/components/backgrounds/SierpinskiChaos.d.ts +32 -0
- package/dist/components/backgrounds/SierpinskiChaos.d.ts.map +1 -0
- package/dist/components/backgrounds/SierpinskiChaos.js +95 -0
- package/dist/components/backgrounds/SierpinskiChaos.js.map +1 -0
- package/dist/components/backgrounds/SierpinskiDust.d.ts +47 -0
- package/dist/components/backgrounds/SierpinskiDust.d.ts.map +1 -0
- package/dist/components/backgrounds/SierpinskiDust.js +148 -0
- package/dist/components/backgrounds/SierpinskiDust.js.map +1 -0
- package/dist/components/backgrounds/Spirograph.d.ts +24 -0
- package/dist/components/backgrounds/Spirograph.d.ts.map +1 -0
- package/dist/components/backgrounds/Spirograph.js +86 -0
- package/dist/components/backgrounds/Spirograph.js.map +1 -0
- package/dist/components/backgrounds/TideHarmonics.d.ts +9 -0
- package/dist/components/backgrounds/TideHarmonics.d.ts.map +1 -0
- package/dist/components/backgrounds/TideHarmonics.js +80 -0
- package/dist/components/backgrounds/TideHarmonics.js.map +1 -0
- package/dist/components/backgrounds/VoronoiMosaic.d.ts +9 -0
- package/dist/components/backgrounds/VoronoiMosaic.d.ts.map +1 -0
- package/dist/components/backgrounds/VoronoiMosaic.js +76 -0
- package/dist/components/backgrounds/VoronoiMosaic.js.map +1 -0
- package/dist/components/backgrounds/VortexBloom.d.ts +36 -0
- package/dist/components/backgrounds/VortexBloom.d.ts.map +1 -0
- package/dist/components/backgrounds/VortexBloom.js +101 -0
- package/dist/components/backgrounds/VortexBloom.js.map +1 -0
- package/dist/components/backgrounds/WaveEther.d.ts +32 -0
- package/dist/components/backgrounds/WaveEther.d.ts.map +1 -0
- package/dist/components/backgrounds/WaveEther.js +91 -0
- package/dist/components/backgrounds/WaveEther.js.map +1 -0
- package/dist/components/backgrounds/archived/CliffordAttractor.d.ts +24 -0
- package/dist/components/backgrounds/archived/CliffordAttractor.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/CliffordAttractor.js +86 -0
- package/dist/components/backgrounds/archived/CliffordAttractor.js.map +1 -0
- package/dist/components/backgrounds/archived/CrystallineDrift.d.ts +33 -0
- package/dist/components/backgrounds/archived/CrystallineDrift.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/CrystallineDrift.js +101 -0
- package/dist/components/backgrounds/archived/CrystallineDrift.js.map +1 -0
- package/dist/components/backgrounds/archived/DifferentialGrowth.d.ts +9 -0
- package/dist/components/backgrounds/archived/DifferentialGrowth.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/DifferentialGrowth.js +82 -0
- package/dist/components/backgrounds/archived/DifferentialGrowth.js.map +1 -0
- package/dist/components/backgrounds/archived/DoublePendulum.d.ts +9 -0
- package/dist/components/backgrounds/archived/DoublePendulum.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/DoublePendulum.js +81 -0
- package/dist/components/backgrounds/archived/DoublePendulum.js.map +1 -0
- package/dist/components/backgrounds/archived/EmberCascade.d.ts +24 -0
- package/dist/components/backgrounds/archived/EmberCascade.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/EmberCascade.js +88 -0
- package/dist/components/backgrounds/archived/EmberCascade.js.map +1 -0
- package/dist/components/backgrounds/archived/GravityStorm.d.ts +30 -0
- package/dist/components/backgrounds/archived/GravityStorm.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/GravityStorm.js +89 -0
- package/dist/components/backgrounds/archived/GravityStorm.js.map +1 -0
- package/dist/components/backgrounds/archived/ReactionDiffusion.d.ts +9 -0
- package/dist/components/backgrounds/archived/ReactionDiffusion.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/ReactionDiffusion.js +79 -0
- package/dist/components/backgrounds/archived/ReactionDiffusion.js.map +1 -0
- package/dist/components/backgrounds/archived/Spirograph.d.ts +24 -0
- package/dist/components/backgrounds/archived/Spirograph.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/Spirograph.js +86 -0
- package/dist/components/backgrounds/archived/Spirograph.js.map +1 -0
- package/dist/components/backgrounds/archived/VortexBloom.d.ts +36 -0
- package/dist/components/backgrounds/archived/VortexBloom.d.ts.map +1 -0
- package/dist/components/backgrounds/archived/VortexBloom.js +101 -0
- package/dist/components/backgrounds/archived/VortexBloom.js.map +1 -0
- package/dist/components/engines/ambientMesh.d.ts +31 -0
- package/dist/components/engines/ambientMesh.d.ts.map +1 -0
- package/dist/components/engines/ambientMesh.js +123 -0
- package/dist/components/engines/ambientMesh.js.map +1 -0
- package/dist/components/engines/arborealGrowth.d.ts +49 -0
- package/dist/components/engines/arborealGrowth.d.ts.map +1 -0
- package/dist/components/engines/arborealGrowth.js +220 -0
- package/dist/components/engines/arborealGrowth.js.map +1 -0
- package/dist/components/engines/archived/cliffordAttractor.d.ts +31 -0
- package/dist/components/engines/archived/cliffordAttractor.d.ts.map +1 -0
- package/dist/components/engines/archived/cliffordAttractor.js +71 -0
- package/dist/components/engines/archived/cliffordAttractor.js.map +1 -0
- package/dist/components/engines/archived/crystallineDrift.d.ts +31 -0
- package/dist/components/engines/archived/crystallineDrift.d.ts.map +1 -0
- package/dist/components/engines/archived/crystallineDrift.js +117 -0
- package/dist/components/engines/archived/crystallineDrift.js.map +1 -0
- package/dist/components/engines/archived/differentialGrowth.d.ts +39 -0
- package/dist/components/engines/archived/differentialGrowth.d.ts.map +1 -0
- package/dist/components/engines/archived/differentialGrowth.js +139 -0
- package/dist/components/engines/archived/differentialGrowth.js.map +1 -0
- package/dist/components/engines/archived/doublePendulum.d.ts +41 -0
- package/dist/components/engines/archived/doublePendulum.d.ts.map +1 -0
- package/dist/components/engines/archived/doublePendulum.js +97 -0
- package/dist/components/engines/archived/doublePendulum.js.map +1 -0
- package/dist/components/engines/archived/emberCascade.d.ts +45 -0
- package/dist/components/engines/archived/emberCascade.d.ts.map +1 -0
- package/dist/components/engines/archived/emberCascade.js +137 -0
- package/dist/components/engines/archived/emberCascade.js.map +1 -0
- package/dist/components/engines/archived/gravityStorm.d.ts +39 -0
- package/dist/components/engines/archived/gravityStorm.d.ts.map +1 -0
- package/dist/components/engines/archived/gravityStorm.js +124 -0
- package/dist/components/engines/archived/gravityStorm.js.map +1 -0
- package/dist/components/engines/archived/reactionDiffusion.d.ts +32 -0
- package/dist/components/engines/archived/reactionDiffusion.d.ts.map +1 -0
- package/dist/components/engines/archived/reactionDiffusion.js +99 -0
- package/dist/components/engines/archived/reactionDiffusion.js.map +1 -0
- package/dist/components/engines/archived/spirograph.d.ts +31 -0
- package/dist/components/engines/archived/spirograph.d.ts.map +1 -0
- package/dist/components/engines/archived/spirograph.js +82 -0
- package/dist/components/engines/archived/spirograph.js.map +1 -0
- package/dist/components/engines/archived/vortexBloom.d.ts +49 -0
- package/dist/components/engines/archived/vortexBloom.d.ts.map +1 -0
- package/dist/components/engines/archived/vortexBloom.js +151 -0
- package/dist/components/engines/archived/vortexBloom.js.map +1 -0
- package/dist/components/engines/cliffordAttractor.d.ts +31 -0
- package/dist/components/engines/cliffordAttractor.d.ts.map +1 -0
- package/dist/components/engines/cliffordAttractor.js +71 -0
- package/dist/components/engines/cliffordAttractor.js.map +1 -0
- package/dist/components/engines/crystallineDrift.d.ts +31 -0
- package/dist/components/engines/crystallineDrift.d.ts.map +1 -0
- package/dist/components/engines/crystallineDrift.js +117 -0
- package/dist/components/engines/crystallineDrift.js.map +1 -0
- package/dist/components/engines/differentialGrowth.d.ts +39 -0
- package/dist/components/engines/differentialGrowth.d.ts.map +1 -0
- package/dist/components/engines/differentialGrowth.js +139 -0
- package/dist/components/engines/differentialGrowth.js.map +1 -0
- package/dist/components/engines/doublePendulum.d.ts +41 -0
- package/dist/components/engines/doublePendulum.d.ts.map +1 -0
- package/dist/components/engines/doublePendulum.js +97 -0
- package/dist/components/engines/doublePendulum.js.map +1 -0
- package/dist/components/engines/dragonCurve.d.ts +46 -0
- package/dist/components/engines/dragonCurve.d.ts.map +1 -0
- package/dist/components/engines/dragonCurve.js +178 -0
- package/dist/components/engines/dragonCurve.js.map +1 -0
- package/dist/components/engines/dragonFold.d.ts +28 -0
- package/dist/components/engines/dragonFold.d.ts.map +1 -0
- package/dist/components/engines/dragonFold.js +166 -0
- package/dist/components/engines/dragonFold.js.map +1 -0
- package/dist/components/engines/emberCascade.d.ts +45 -0
- package/dist/components/engines/emberCascade.d.ts.map +1 -0
- package/dist/components/engines/emberCascade.js +137 -0
- package/dist/components/engines/emberCascade.js.map +1 -0
- package/dist/components/engines/fibonacciVortex.d.ts +70 -0
- package/dist/components/engines/fibonacciVortex.d.ts.map +1 -0
- package/dist/components/engines/fibonacciVortex.js +144 -0
- package/dist/components/engines/fibonacciVortex.js.map +1 -0
- package/dist/components/engines/flowCurrents.d.ts +34 -0
- package/dist/components/engines/flowCurrents.d.ts.map +1 -0
- package/dist/components/engines/flowCurrents.js +89 -0
- package/dist/components/engines/flowCurrents.js.map +1 -0
- package/dist/components/engines/fractalNoiseTerrain.d.ts +32 -0
- package/dist/components/engines/fractalNoiseTerrain.d.ts.map +1 -0
- package/dist/components/engines/fractalNoiseTerrain.js +89 -0
- package/dist/components/engines/fractalNoiseTerrain.js.map +1 -0
- package/dist/components/engines/fractalTree.d.ts +20 -0
- package/dist/components/engines/fractalTree.d.ts.map +1 -0
- package/dist/components/engines/fractalTree.js +92 -0
- package/dist/components/engines/fractalTree.js.map +1 -0
- package/dist/components/engines/geoPulse.d.ts +33 -0
- package/dist/components/engines/geoPulse.d.ts.map +1 -0
- package/dist/components/engines/geoPulse.js +116 -0
- package/dist/components/engines/geoPulse.js.map +1 -0
- package/dist/components/engines/gravityStorm.d.ts +39 -0
- package/dist/components/engines/gravityStorm.d.ts.map +1 -0
- package/dist/components/engines/gravityStorm.js +124 -0
- package/dist/components/engines/gravityStorm.js.map +1 -0
- package/dist/components/engines/harmonicLattice.d.ts +38 -0
- package/dist/components/engines/harmonicLattice.d.ts.map +1 -0
- package/dist/components/engines/harmonicLattice.js +87 -0
- package/dist/components/engines/harmonicLattice.js.map +1 -0
- package/dist/components/engines/hexRipple.d.ts +61 -0
- package/dist/components/engines/hexRipple.d.ts.map +1 -0
- package/dist/components/engines/hexRipple.js +157 -0
- package/dist/components/engines/hexRipple.js.map +1 -0
- package/dist/components/engines/kochCrystal.d.ts +47 -0
- package/dist/components/engines/kochCrystal.d.ts.map +1 -0
- package/dist/components/engines/kochCrystal.js +177 -0
- package/dist/components/engines/kochCrystal.js.map +1 -0
- package/dist/components/engines/lissajousWeave.d.ts +38 -0
- package/dist/components/engines/lissajousWeave.d.ts.map +1 -0
- package/dist/components/engines/lissajousWeave.js +83 -0
- package/dist/components/engines/lissajousWeave.js.map +1 -0
- package/dist/components/engines/moireLattice.d.ts +28 -0
- package/dist/components/engines/moireLattice.d.ts.map +1 -0
- package/dist/components/engines/moireLattice.js +47 -0
- package/dist/components/engines/moireLattice.js.map +1 -0
- package/dist/components/engines/nebulaVeil.d.ts +38 -0
- package/dist/components/engines/nebulaVeil.d.ts.map +1 -0
- package/dist/components/engines/nebulaVeil.js +177 -0
- package/dist/components/engines/nebulaVeil.js.map +1 -0
- package/dist/components/engines/neuralWeave.d.ts +53 -0
- package/dist/components/engines/neuralWeave.d.ts.map +1 -0
- package/dist/components/engines/neuralWeave.js +165 -0
- package/dist/components/engines/neuralWeave.js.map +1 -0
- package/dist/components/engines/orbitalResonance.d.ts +50 -0
- package/dist/components/engines/orbitalResonance.d.ts.map +1 -0
- package/dist/components/engines/orbitalResonance.js +94 -0
- package/dist/components/engines/orbitalResonance.js.map +1 -0
- package/dist/components/engines/photonBurst.d.ts +43 -0
- package/dist/components/engines/photonBurst.d.ts.map +1 -0
- package/dist/components/engines/photonBurst.js +204 -0
- package/dist/components/engines/photonBurst.js.map +1 -0
- package/dist/components/engines/phyllotaxisDream.d.ts +28 -0
- package/dist/components/engines/phyllotaxisDream.d.ts.map +1 -0
- package/dist/components/engines/phyllotaxisDream.js +75 -0
- package/dist/components/engines/phyllotaxisDream.js.map +1 -0
- package/dist/components/engines/plasmaField.d.ts +44 -0
- package/dist/components/engines/plasmaField.d.ts.map +1 -0
- package/dist/components/engines/plasmaField.js +227 -0
- package/dist/components/engines/plasmaField.js.map +1 -0
- package/dist/components/engines/prismaticWave.d.ts +39 -0
- package/dist/components/engines/prismaticWave.d.ts.map +1 -0
- package/dist/components/engines/prismaticWave.js +158 -0
- package/dist/components/engines/prismaticWave.js.map +1 -0
- package/dist/components/engines/reactionDiffusion.d.ts +32 -0
- package/dist/components/engines/reactionDiffusion.d.ts.map +1 -0
- package/dist/components/engines/reactionDiffusion.js +99 -0
- package/dist/components/engines/reactionDiffusion.js.map +1 -0
- package/dist/components/engines/recursiveSubdivision.d.ts +40 -0
- package/dist/components/engines/recursiveSubdivision.d.ts.map +1 -0
- package/dist/components/engines/recursiveSubdivision.js +133 -0
- package/dist/components/engines/recursiveSubdivision.js.map +1 -0
- package/dist/components/engines/recursiveTunnel.d.ts +66 -0
- package/dist/components/engines/recursiveTunnel.d.ts.map +1 -0
- package/dist/components/engines/recursiveTunnel.js +152 -0
- package/dist/components/engines/recursiveTunnel.js.map +1 -0
- package/dist/components/engines/sierpinskiChaos.d.ts +41 -0
- package/dist/components/engines/sierpinskiChaos.d.ts.map +1 -0
- package/dist/components/engines/sierpinskiChaos.js +118 -0
- package/dist/components/engines/sierpinskiChaos.js.map +1 -0
- package/dist/components/engines/sierpinskiDust.d.ts +72 -0
- package/dist/components/engines/sierpinskiDust.d.ts.map +1 -0
- package/dist/components/engines/sierpinskiDust.js +152 -0
- package/dist/components/engines/sierpinskiDust.js.map +1 -0
- package/dist/components/engines/spirograph.d.ts +31 -0
- package/dist/components/engines/spirograph.d.ts.map +1 -0
- package/dist/components/engines/spirograph.js +82 -0
- package/dist/components/engines/spirograph.js.map +1 -0
- package/dist/components/engines/tideHarmonics.d.ts +37 -0
- package/dist/components/engines/tideHarmonics.d.ts.map +1 -0
- package/dist/components/engines/tideHarmonics.js +71 -0
- package/dist/components/engines/tideHarmonics.js.map +1 -0
- package/dist/components/engines/voronoiMosaic.d.ts +37 -0
- package/dist/components/engines/voronoiMosaic.d.ts.map +1 -0
- package/dist/components/engines/voronoiMosaic.js +130 -0
- package/dist/components/engines/voronoiMosaic.js.map +1 -0
- package/dist/components/engines/vortexBloom.d.ts +49 -0
- package/dist/components/engines/vortexBloom.d.ts.map +1 -0
- package/dist/components/engines/vortexBloom.js +151 -0
- package/dist/components/engines/vortexBloom.js.map +1 -0
- package/dist/components/engines/waveEther.d.ts +30 -0
- package/dist/components/engines/waveEther.d.ts.map +1 -0
- package/dist/components/engines/waveEther.js +74 -0
- package/dist/components/engines/waveEther.js.map +1 -0
- package/dist/components/schemas/index.d.ts +131 -0
- package/dist/components/schemas/index.d.ts.map +1 -0
- package/dist/components/schemas/index.js +478 -0
- package/dist/components/schemas/index.js.map +1 -0
- package/dist/components/utils/noise.d.ts +38 -0
- package/dist/components/utils/noise.d.ts.map +1 -0
- package/dist/components/utils/noise.js +132 -0
- package/dist/components/utils/noise.js.map +1 -0
- package/dist/engines/flowCurrents.d.ts +34 -0
- package/dist/engines/flowCurrents.d.ts.map +1 -0
- package/dist/engines/flowCurrents.js +89 -0
- package/dist/engines/flowCurrents.js.map +1 -0
- package/dist/engines/geoPulse.d.ts +33 -0
- package/dist/engines/geoPulse.d.ts.map +1 -0
- package/dist/engines/geoPulse.js +116 -0
- package/dist/engines/geoPulse.js.map +1 -0
- package/dist/engines/gravityStorm.d.ts +39 -0
- package/dist/engines/gravityStorm.d.ts.map +1 -0
- package/dist/engines/gravityStorm.js +124 -0
- package/dist/engines/gravityStorm.js.map +1 -0
- package/dist/engines/waveEther.d.ts +30 -0
- package/dist/engines/waveEther.d.ts.map +1 -0
- package/dist/engines/waveEther.js +74 -0
- package/dist/engines/waveEther.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +138 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/index.d.ts +59 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +669 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/schemas/index.d.ts +93 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +83 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/utils/noise.d.ts +37 -0
- package/dist/utils/noise.d.ts.map +1 -0
- package/dist/utils/noise.js +129 -0
- package/dist/utils/noise.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"photonBurst.js","sourceRoot":"","sources":["../../../src/components/engines/photonBurst.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phyllotaxis Dream Engine
|
|
3
|
+
* Golden angle spiral growth pattern
|
|
4
|
+
*/
|
|
5
|
+
import { SeededRandom } from "../utils/noise";
|
|
6
|
+
export interface PhyllotaxisDreamParams {
|
|
7
|
+
seed: number;
|
|
8
|
+
numPoints: number;
|
|
9
|
+
spread: number;
|
|
10
|
+
angleScale: number;
|
|
11
|
+
morph: number;
|
|
12
|
+
rotSpeed: number;
|
|
13
|
+
dotSize: number;
|
|
14
|
+
bgColor: string;
|
|
15
|
+
colorA: string;
|
|
16
|
+
colorB: string;
|
|
17
|
+
colorC: string;
|
|
18
|
+
}
|
|
19
|
+
export interface PhyllotaxisDreamState {
|
|
20
|
+
rng: SeededRandom;
|
|
21
|
+
frameCount: number;
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
}
|
|
25
|
+
export declare function initPhyllotaxisDream(width: number, height: number, params: PhyllotaxisDreamParams): PhyllotaxisDreamState;
|
|
26
|
+
export declare function drawPhyllotaxisDream(ctx: CanvasRenderingContext2D, state: PhyllotaxisDreamState, params: PhyllotaxisDreamParams): void;
|
|
27
|
+
export declare function resetPhyllotaxisDream(state: PhyllotaxisDreamState, params: PhyllotaxisDreamParams): void;
|
|
28
|
+
//# sourceMappingURL=phyllotaxisDream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phyllotaxisDream.d.ts","sourceRoot":"","sources":["../../../src/components/engines/phyllotaxisDream.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AAKpE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,YAAY,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,sBAAsB,GAC7B,qBAAqB,CASvB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CA8DN;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CAIN"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phyllotaxis Dream Engine
|
|
3
|
+
* Golden angle spiral growth pattern
|
|
4
|
+
*/
|
|
5
|
+
import { SeededRandom, hexToRgb, lerp, rgba } from "../utils/noise";
|
|
6
|
+
// True golden angle in radians: 2π(2−φ) ≈ 2.39996 rad ≈ 137.508°
|
|
7
|
+
const GOLDEN = Math.PI * (3 - Math.sqrt(5));
|
|
8
|
+
export function initPhyllotaxisDream(width, height, params) {
|
|
9
|
+
const rng = new SeededRandom(params.seed);
|
|
10
|
+
return {
|
|
11
|
+
rng,
|
|
12
|
+
frameCount: 0,
|
|
13
|
+
width,
|
|
14
|
+
height,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function drawPhyllotaxisDream(ctx, state, params) {
|
|
18
|
+
const { frameCount, width, height } = state;
|
|
19
|
+
// Clear background every frame
|
|
20
|
+
const bg = hexToRgb(params.bgColor);
|
|
21
|
+
ctx.fillStyle = rgba(bg.r, bg.g, bg.b, 255);
|
|
22
|
+
ctx.fillRect(0, 0, width, height);
|
|
23
|
+
const cx = width / 2;
|
|
24
|
+
const cy = height / 2;
|
|
25
|
+
const t = frameCount * params.rotSpeed * 0.004;
|
|
26
|
+
const col1 = hexToRgb(params.colorA);
|
|
27
|
+
const col2 = hexToRgb(params.colorB);
|
|
28
|
+
const col3 = hexToRgb(params.colorC);
|
|
29
|
+
const angleScale = params.angleScale + Math.sin(t * 0.18) * 0.004 * params.morph;
|
|
30
|
+
const N = params.numPoints;
|
|
31
|
+
// Draw points
|
|
32
|
+
for (let n = 0; n < N; n++) {
|
|
33
|
+
const angle = n * GOLDEN * angleScale + t;
|
|
34
|
+
const r = Math.sqrt(n) * params.spread;
|
|
35
|
+
const x = cx + r * Math.cos(angle);
|
|
36
|
+
const y = cy + r * Math.sin(angle);
|
|
37
|
+
// Skip if out of bounds
|
|
38
|
+
if (x < 0 || x > width || y < 0 || y > height)
|
|
39
|
+
continue;
|
|
40
|
+
const ct = n / N;
|
|
41
|
+
let r1, g1, b1;
|
|
42
|
+
// Color interpolation
|
|
43
|
+
if (ct < 0.5) {
|
|
44
|
+
const f = ct / 0.5;
|
|
45
|
+
r1 = lerp(col1.r, col2.r, f);
|
|
46
|
+
g1 = lerp(col1.g, col2.g, f);
|
|
47
|
+
b1 = lerp(col1.b, col2.b, f);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const f = (ct - 0.5) / 0.5;
|
|
51
|
+
r1 = lerp(col2.r, col3.r, f);
|
|
52
|
+
g1 = lerp(col2.g, col3.g, f);
|
|
53
|
+
b1 = lerp(col2.b, col3.b, f);
|
|
54
|
+
}
|
|
55
|
+
const alpha = 190 + 55 * Math.sin(ct * Math.PI * 6 + t * 2);
|
|
56
|
+
const sz = params.dotSize * (1 - ct * 0.55);
|
|
57
|
+
// Draw glow
|
|
58
|
+
ctx.fillStyle = rgba(r1, g1, b1, alpha * 0.25);
|
|
59
|
+
ctx.beginPath();
|
|
60
|
+
ctx.arc(x, y, sz * 3, 0, Math.PI * 2);
|
|
61
|
+
ctx.fill();
|
|
62
|
+
// Draw core
|
|
63
|
+
ctx.fillStyle = rgba(r1, g1, b1, alpha);
|
|
64
|
+
ctx.beginPath();
|
|
65
|
+
ctx.arc(x, y, sz, 0, Math.PI * 2);
|
|
66
|
+
ctx.fill();
|
|
67
|
+
}
|
|
68
|
+
state.frameCount++;
|
|
69
|
+
}
|
|
70
|
+
export function resetPhyllotaxisDream(state, params) {
|
|
71
|
+
const newState = initPhyllotaxisDream(state.width, state.height, params);
|
|
72
|
+
state.rng = newState.rng;
|
|
73
|
+
state.frameCount = 0;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=phyllotaxisDream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phyllotaxisDream.js","sourceRoot":"","sources":["../../../src/components/engines/phyllotaxisDream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlasmaField engine — WebGL2 fragment shader background.
|
|
3
|
+
*
|
|
4
|
+
* Renders domain-warped fractional Brownian motion (fBm) at true pixel
|
|
5
|
+
* resolution via a fullscreen triangle. Three color stops are blended
|
|
6
|
+
* through the noise field and modulated over time, producing luminous
|
|
7
|
+
* plasma-like shifting gradients impossible to achieve at quality in Canvas 2D.
|
|
8
|
+
*
|
|
9
|
+
* Architecture: pure WebGL2 — no external dependencies. The React wrapper
|
|
10
|
+
* acquires the context and passes it to init/draw/reset. Engine holds
|
|
11
|
+
* compiled shader program, cached uniform locations, and a VAO.
|
|
12
|
+
*/
|
|
13
|
+
export interface PlasmaFieldParams {
|
|
14
|
+
seed?: number;
|
|
15
|
+
speed?: number;
|
|
16
|
+
scale?: number;
|
|
17
|
+
contrast?: number;
|
|
18
|
+
colorA?: string;
|
|
19
|
+
colorB?: string;
|
|
20
|
+
colorC?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PlasmaFieldState {
|
|
23
|
+
gl: WebGL2RenderingContext;
|
|
24
|
+
program: WebGLProgram;
|
|
25
|
+
vao: WebGLVertexArrayObject;
|
|
26
|
+
uniforms: {
|
|
27
|
+
uTime: WebGLUniformLocation;
|
|
28
|
+
uResolution: WebGLUniformLocation;
|
|
29
|
+
uColorA: WebGLUniformLocation;
|
|
30
|
+
uColorB: WebGLUniformLocation;
|
|
31
|
+
uColorC: WebGLUniformLocation;
|
|
32
|
+
uScale: WebGLUniformLocation;
|
|
33
|
+
uContrast: WebGLUniformLocation;
|
|
34
|
+
uSeed: WebGLUniformLocation;
|
|
35
|
+
};
|
|
36
|
+
time: number;
|
|
37
|
+
width: number;
|
|
38
|
+
height: number;
|
|
39
|
+
}
|
|
40
|
+
export declare const plasmaFieldDefaults: Required<PlasmaFieldParams>;
|
|
41
|
+
export declare function initPlasmaField(gl: WebGL2RenderingContext, width: number, height: number, params?: PlasmaFieldParams): PlasmaFieldState;
|
|
42
|
+
export declare function drawPlasmaField(gl: WebGL2RenderingContext, state: PlasmaFieldState, params?: PlasmaFieldParams): void;
|
|
43
|
+
export declare function resetPlasmaField(gl: WebGL2RenderingContext, state: PlasmaFieldState, params?: PlasmaFieldParams): PlasmaFieldState;
|
|
44
|
+
//# sourceMappingURL=plasmaField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plasmaField.d.ts","sourceRoot":"","sources":["../../../src/components/engines/plasmaField.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiKH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,sBAAsB,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,GAAG,EAAE,sBAAsB,CAAC;IAC5B,QAAQ,EAAE;QACR,KAAK,EAAE,oBAAoB,CAAC;QAC5B,WAAW,EAAE,oBAAoB,CAAC;QAClC,OAAO,EAAE,oBAAoB,CAAC;QAC9B,OAAO,EAAE,oBAAoB,CAAC;QAC9B,OAAO,EAAE,oBAAoB,CAAC;QAC9B,MAAM,EAAE,oBAAoB,CAAC;QAC7B,SAAS,EAAE,oBAAoB,CAAC;QAChC,KAAK,EAAE,oBAAoB,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,iBAAiB,CAQ3D,CAAC;AAIF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,iBAAsB,GAC7B,gBAAgB,CA2ClB;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,gBAAgB,EACvB,MAAM,GAAE,iBAAsB,GAC7B,IAAI,CAyBN;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,gBAAgB,EACvB,MAAM,GAAE,iBAAsB,GAC7B,gBAAgB,CAKlB"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlasmaField engine — WebGL2 fragment shader background.
|
|
3
|
+
*
|
|
4
|
+
* Renders domain-warped fractional Brownian motion (fBm) at true pixel
|
|
5
|
+
* resolution via a fullscreen triangle. Three color stops are blended
|
|
6
|
+
* through the noise field and modulated over time, producing luminous
|
|
7
|
+
* plasma-like shifting gradients impossible to achieve at quality in Canvas 2D.
|
|
8
|
+
*
|
|
9
|
+
* Architecture: pure WebGL2 — no external dependencies. The React wrapper
|
|
10
|
+
* acquires the context and passes it to init/draw/reset. Engine holds
|
|
11
|
+
* compiled shader program, cached uniform locations, and a VAO.
|
|
12
|
+
*/
|
|
13
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
14
|
+
function hexToVec3(hex) {
|
|
15
|
+
const h = hex.replace("#", "");
|
|
16
|
+
const r = parseInt(h.slice(0, 2), 16) / 255;
|
|
17
|
+
const g = parseInt(h.slice(2, 4), 16) / 255;
|
|
18
|
+
const b = parseInt(h.slice(4, 6), 16) / 255;
|
|
19
|
+
return [r, g, b];
|
|
20
|
+
}
|
|
21
|
+
function compileShader(gl, type, src) {
|
|
22
|
+
const shader = gl.createShader(type);
|
|
23
|
+
gl.shaderSource(shader, src);
|
|
24
|
+
gl.compileShader(shader);
|
|
25
|
+
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
26
|
+
const info = gl.getShaderInfoLog(shader);
|
|
27
|
+
gl.deleteShader(shader);
|
|
28
|
+
throw new Error(`PlasmaField shader compile error: ${info}`);
|
|
29
|
+
}
|
|
30
|
+
return shader;
|
|
31
|
+
}
|
|
32
|
+
function compileProgram(gl, vert, frag) {
|
|
33
|
+
const program = gl.createProgram();
|
|
34
|
+
const vs = compileShader(gl, gl.VERTEX_SHADER, vert);
|
|
35
|
+
const fs = compileShader(gl, gl.FRAGMENT_SHADER, frag);
|
|
36
|
+
gl.attachShader(program, vs);
|
|
37
|
+
gl.attachShader(program, fs);
|
|
38
|
+
gl.linkProgram(program);
|
|
39
|
+
gl.deleteShader(vs);
|
|
40
|
+
gl.deleteShader(fs);
|
|
41
|
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
42
|
+
const info = gl.getProgramInfoLog(program);
|
|
43
|
+
gl.deleteProgram(program);
|
|
44
|
+
throw new Error(`PlasmaField program link error: ${info}`);
|
|
45
|
+
}
|
|
46
|
+
return program;
|
|
47
|
+
}
|
|
48
|
+
// ─── GLSL Sources ─────────────────────────────────────────────────────────────
|
|
49
|
+
const VERT = `#version 300 es
|
|
50
|
+
in vec2 aPosition;
|
|
51
|
+
void main() {
|
|
52
|
+
gl_Position = vec4(aPosition, 0.0, 1.0);
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
// Domain-warped fBm plasma shader.
|
|
56
|
+
// Algorithm:
|
|
57
|
+
// 1. Compute a base noise field n1 using 3D value noise (seeded by uSeed).
|
|
58
|
+
// 2. Use n1 to warp the UV coordinates (domain warp), then compute n2.
|
|
59
|
+
// 3. Mix colorA, colorB, colorC through the warped field.
|
|
60
|
+
// 4. Animate by evolving the z-slice of the noise over uTime.
|
|
61
|
+
const FRAG = `#version 300 es
|
|
62
|
+
precision highp float;
|
|
63
|
+
|
|
64
|
+
uniform float uTime;
|
|
65
|
+
uniform vec2 uResolution;
|
|
66
|
+
uniform vec3 uColorA;
|
|
67
|
+
uniform vec3 uColorB;
|
|
68
|
+
uniform vec3 uColorC;
|
|
69
|
+
uniform float uScale;
|
|
70
|
+
uniform float uContrast;
|
|
71
|
+
uniform float uSeed;
|
|
72
|
+
|
|
73
|
+
out vec4 fragColor;
|
|
74
|
+
|
|
75
|
+
// ---- Permutation hash (no textures needed) ----
|
|
76
|
+
vec3 hash3(vec3 p) {
|
|
77
|
+
p = vec3(
|
|
78
|
+
dot(p, vec3(127.1, 311.7, 74.7)),
|
|
79
|
+
dot(p, vec3(269.5, 183.3, 246.1)),
|
|
80
|
+
dot(p, vec3(113.5, 271.9, 124.6))
|
|
81
|
+
);
|
|
82
|
+
return fract(sin(p) * 43758.5453123);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
float hash(vec3 p) {
|
|
86
|
+
return fract(sin(dot(p, vec3(127.1, 311.7, 74.7))) * 43758.5453123);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ---- 3D value noise ----
|
|
90
|
+
float noise(vec3 p) {
|
|
91
|
+
vec3 i = floor(p);
|
|
92
|
+
vec3 f = fract(p);
|
|
93
|
+
vec3 u = f * f * (3.0 - 2.0 * f); // smoothstep
|
|
94
|
+
|
|
95
|
+
return mix(
|
|
96
|
+
mix(
|
|
97
|
+
mix(hash(i + vec3(0,0,0)), hash(i + vec3(1,0,0)), u.x),
|
|
98
|
+
mix(hash(i + vec3(0,1,0)), hash(i + vec3(1,1,0)), u.x),
|
|
99
|
+
u.y
|
|
100
|
+
),
|
|
101
|
+
mix(
|
|
102
|
+
mix(hash(i + vec3(0,0,1)), hash(i + vec3(1,0,1)), u.x),
|
|
103
|
+
mix(hash(i + vec3(0,1,1)), hash(i + vec3(1,1,1)), u.x),
|
|
104
|
+
u.y
|
|
105
|
+
),
|
|
106
|
+
u.z
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// ---- fBm (3 octaves) ----
|
|
111
|
+
float fbm(vec3 p) {
|
|
112
|
+
float v = 0.0;
|
|
113
|
+
float a = 0.5;
|
|
114
|
+
vec3 shift = vec3(100.0);
|
|
115
|
+
for (int i = 0; i < 3; i++) {
|
|
116
|
+
v += a * noise(p);
|
|
117
|
+
p = p * 2.0 + shift;
|
|
118
|
+
a *= 0.5;
|
|
119
|
+
}
|
|
120
|
+
return v;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
void main() {
|
|
124
|
+
vec2 uv = gl_FragCoord.xy / uResolution;
|
|
125
|
+
// aspect-correct, centered
|
|
126
|
+
uv = (uv - 0.5) * vec2(uResolution.x / uResolution.y, 1.0);
|
|
127
|
+
|
|
128
|
+
// seed offset applied to noise coordinates
|
|
129
|
+
vec3 q = vec3(uv * uScale + uSeed * 0.01, uTime * 0.12);
|
|
130
|
+
|
|
131
|
+
// First noise pass
|
|
132
|
+
float n1 = fbm(q);
|
|
133
|
+
|
|
134
|
+
// Domain warp: offset UV by n1 before second pass
|
|
135
|
+
vec3 r = vec3(
|
|
136
|
+
uv * uScale + vec2(n1 * 1.7 + 9.2, n1 * 1.2 + 2.4) + uSeed * 0.01,
|
|
137
|
+
uTime * 0.08 + 5.2
|
|
138
|
+
);
|
|
139
|
+
float n2 = fbm(r);
|
|
140
|
+
|
|
141
|
+
// Apply contrast
|
|
142
|
+
float v = clamp(n2 * uContrast, 0.0, 1.0);
|
|
143
|
+
|
|
144
|
+
// Three-stop color gradient
|
|
145
|
+
vec3 col;
|
|
146
|
+
if (v < 0.5) {
|
|
147
|
+
col = mix(uColorA, uColorB, v * 2.0);
|
|
148
|
+
} else {
|
|
149
|
+
col = mix(uColorB, uColorC, (v - 0.5) * 2.0);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Subtle radial vignette for depth
|
|
153
|
+
float vignette = 1.0 - smoothstep(0.4, 1.1, length(uv * 0.8));
|
|
154
|
+
col *= vignette;
|
|
155
|
+
|
|
156
|
+
fragColor = vec4(col, 1.0);
|
|
157
|
+
}
|
|
158
|
+
`;
|
|
159
|
+
export const plasmaFieldDefaults = {
|
|
160
|
+
seed: 42,
|
|
161
|
+
speed: 1.0,
|
|
162
|
+
scale: 2.5,
|
|
163
|
+
contrast: 2.2,
|
|
164
|
+
colorA: "#0d1b6e",
|
|
165
|
+
colorB: "#c0146c",
|
|
166
|
+
colorC: "#f5a623",
|
|
167
|
+
};
|
|
168
|
+
// ─── Engine functions ─────────────────────────────────────────────────────────
|
|
169
|
+
export function initPlasmaField(gl, width, height, params = {}) {
|
|
170
|
+
const p = { ...plasmaFieldDefaults, ...params };
|
|
171
|
+
const program = compileProgram(gl, VERT, FRAG);
|
|
172
|
+
// Fullscreen triangle: 3 vertices covering all of NDC clip space
|
|
173
|
+
const vao = gl.createVertexArray();
|
|
174
|
+
gl.bindVertexArray(vao);
|
|
175
|
+
const posBuffer = gl.createBuffer();
|
|
176
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, posBuffer);
|
|
177
|
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 3, -1, -1, 3]), gl.STATIC_DRAW);
|
|
178
|
+
const posLoc = gl.getAttribLocation(program, "aPosition");
|
|
179
|
+
gl.enableVertexAttribArray(posLoc);
|
|
180
|
+
gl.vertexAttribPointer(posLoc, 2, gl.FLOAT, false, 0, 0);
|
|
181
|
+
gl.bindVertexArray(null);
|
|
182
|
+
// Cache uniform locations (done once, reused every frame)
|
|
183
|
+
const uniforms = {
|
|
184
|
+
uTime: gl.getUniformLocation(program, "uTime"),
|
|
185
|
+
uResolution: gl.getUniformLocation(program, "uResolution"),
|
|
186
|
+
uColorA: gl.getUniformLocation(program, "uColorA"),
|
|
187
|
+
uColorB: gl.getUniformLocation(program, "uColorB"),
|
|
188
|
+
uColorC: gl.getUniformLocation(program, "uColorC"),
|
|
189
|
+
uScale: gl.getUniformLocation(program, "uScale"),
|
|
190
|
+
uContrast: gl.getUniformLocation(program, "uContrast"),
|
|
191
|
+
uSeed: gl.getUniformLocation(program, "uSeed"),
|
|
192
|
+
};
|
|
193
|
+
gl.viewport(0, 0, width, height);
|
|
194
|
+
// Set seed and scale once (structural params that don't change frame-to-frame)
|
|
195
|
+
gl.useProgram(program);
|
|
196
|
+
gl.uniform1f(uniforms.uSeed, p.seed);
|
|
197
|
+
gl.uniform1f(uniforms.uScale, p.scale);
|
|
198
|
+
gl.useProgram(null);
|
|
199
|
+
return { gl, program, vao, uniforms, time: 0, width, height };
|
|
200
|
+
}
|
|
201
|
+
export function drawPlasmaField(gl, state, params = {}) {
|
|
202
|
+
const p = { ...plasmaFieldDefaults, ...params };
|
|
203
|
+
state.time += 0.016 * p.speed;
|
|
204
|
+
gl.useProgram(state.program);
|
|
205
|
+
gl.uniform1f(state.uniforms.uTime, state.time);
|
|
206
|
+
gl.uniform2f(state.uniforms.uResolution, state.width, state.height);
|
|
207
|
+
gl.uniform1f(state.uniforms.uScale, p.scale);
|
|
208
|
+
gl.uniform1f(state.uniforms.uContrast, p.contrast);
|
|
209
|
+
gl.uniform1f(state.uniforms.uSeed, p.seed);
|
|
210
|
+
const ca = hexToVec3(p.colorA);
|
|
211
|
+
const cb = hexToVec3(p.colorB);
|
|
212
|
+
const cc = hexToVec3(p.colorC);
|
|
213
|
+
gl.uniform3f(state.uniforms.uColorA, ca[0], ca[1], ca[2]);
|
|
214
|
+
gl.uniform3f(state.uniforms.uColorB, cb[0], cb[1], cb[2]);
|
|
215
|
+
gl.uniform3f(state.uniforms.uColorC, cc[0], cc[1], cc[2]);
|
|
216
|
+
gl.bindVertexArray(state.vao);
|
|
217
|
+
gl.drawArrays(gl.TRIANGLES, 0, 3);
|
|
218
|
+
gl.bindVertexArray(null);
|
|
219
|
+
gl.useProgram(null);
|
|
220
|
+
}
|
|
221
|
+
export function resetPlasmaField(gl, state, params = {}) {
|
|
222
|
+
// Recompile with new structural params (seed/scale may affect program constants)
|
|
223
|
+
gl.deleteProgram(state.program);
|
|
224
|
+
gl.deleteVertexArray(state.vao);
|
|
225
|
+
return initPlasmaField(gl, state.width, state.height, params);
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=plasmaField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plasmaField.js","sourceRoot":"","sources":["../../../src/components/engines/plasmaField.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrismaticWave engine — framework-agnostic Canvas 2D renderer.
|
|
3
|
+
*
|
|
4
|
+
* Multiple circular wave sources interfere across a pixel grid. The
|
|
5
|
+
* superposition amplitude is mapped to a full spectral hue sweep (red →
|
|
6
|
+
* violet), mimicking light dispersion through a prism. The cursor acts as a
|
|
7
|
+
* diverging lens that warps nearby sample coordinates, bending the spectral
|
|
8
|
+
* bands around it. Clicking plants a new persistent wave source.
|
|
9
|
+
*/
|
|
10
|
+
import { SeededRandom } from "../utils/noise";
|
|
11
|
+
import type { PrismaticWaveParams } from "../schemas";
|
|
12
|
+
interface WaveSource {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
baseX: number;
|
|
16
|
+
baseY: number;
|
|
17
|
+
freq: number;
|
|
18
|
+
phase: number;
|
|
19
|
+
orbitAngle: number;
|
|
20
|
+
orbitR: number;
|
|
21
|
+
orbitSpeed: number;
|
|
22
|
+
amplitude: number;
|
|
23
|
+
}
|
|
24
|
+
export interface PrismaticWaveState {
|
|
25
|
+
time: number;
|
|
26
|
+
sources: WaveSource[];
|
|
27
|
+
rng: SeededRandom;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
}
|
|
31
|
+
export declare function initPrismaticWave(width: number, height: number, params?: PrismaticWaveParams): PrismaticWaveState;
|
|
32
|
+
export declare function drawPrismaticWave(ctx: CanvasRenderingContext2D, state: PrismaticWaveState, params?: PrismaticWaveParams, mouse?: {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
}): void;
|
|
36
|
+
export declare function spawnAtClick(state: PrismaticWaveState, x: number, y: number, params?: PrismaticWaveParams): void;
|
|
37
|
+
export declare function resetPrismaticWave(ctx: CanvasRenderingContext2D, state: PrismaticWaveState, params?: PrismaticWaveParams): PrismaticWaveState;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=prismaticWave.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prismaticWave.d.ts","sourceRoot":"","sources":["../../../src/components/engines/prismaticWave.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAQ,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKtD,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,mBAAwB,GAC/B,kBAAkB,CAqBpB;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,kBAAkB,EACzB,MAAM,GAAE,mBAAwB,EAChC,KAAK,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,IAAI,CAkEN;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,kBAAkB,EACzB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,GAAE,mBAAwB,GAC/B,IAAI,CAmBN;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,kBAAkB,EACzB,MAAM,GAAE,mBAAwB,GAC/B,kBAAkB,CAIpB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrismaticWave engine — framework-agnostic Canvas 2D renderer.
|
|
3
|
+
*
|
|
4
|
+
* Multiple circular wave sources interfere across a pixel grid. The
|
|
5
|
+
* superposition amplitude is mapped to a full spectral hue sweep (red →
|
|
6
|
+
* violet), mimicking light dispersion through a prism. The cursor acts as a
|
|
7
|
+
* diverging lens that warps nearby sample coordinates, bending the spectral
|
|
8
|
+
* bands around it. Clicking plants a new persistent wave source.
|
|
9
|
+
*/
|
|
10
|
+
import { SeededRandom, lerp } from "../utils/noise";
|
|
11
|
+
import { prismaticWaveDefaults } from "../schemas";
|
|
12
|
+
// ── Color helpers ────────────────────────────────────────────────────────────
|
|
13
|
+
/** HSL → RGB, all channels 0–255. l is 0–1, s is 0–1, h is 0–360. */
|
|
14
|
+
function hslToRgb(h, s, l) {
|
|
15
|
+
h = ((h % 360) + 360) % 360;
|
|
16
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
17
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
18
|
+
const m = l - c / 2;
|
|
19
|
+
let r = 0, g = 0, b = 0;
|
|
20
|
+
if (h < 60) {
|
|
21
|
+
r = c;
|
|
22
|
+
g = x;
|
|
23
|
+
b = 0;
|
|
24
|
+
}
|
|
25
|
+
else if (h < 120) {
|
|
26
|
+
r = x;
|
|
27
|
+
g = c;
|
|
28
|
+
b = 0;
|
|
29
|
+
}
|
|
30
|
+
else if (h < 180) {
|
|
31
|
+
r = 0;
|
|
32
|
+
g = c;
|
|
33
|
+
b = x;
|
|
34
|
+
}
|
|
35
|
+
else if (h < 240) {
|
|
36
|
+
r = 0;
|
|
37
|
+
g = x;
|
|
38
|
+
b = c;
|
|
39
|
+
}
|
|
40
|
+
else if (h < 300) {
|
|
41
|
+
r = x;
|
|
42
|
+
g = 0;
|
|
43
|
+
b = c;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
r = c;
|
|
47
|
+
g = 0;
|
|
48
|
+
b = x;
|
|
49
|
+
}
|
|
50
|
+
return [
|
|
51
|
+
Math.round((r + m) * 255),
|
|
52
|
+
Math.round((g + m) * 255),
|
|
53
|
+
Math.round((b + m) * 255),
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
// ── Engine functions ─────────────────────────────────────────────────────────
|
|
57
|
+
export function initPrismaticWave(width, height, params = {}) {
|
|
58
|
+
const p = { ...prismaticWaveDefaults, ...params };
|
|
59
|
+
const rng = new SeededRandom(p.seed);
|
|
60
|
+
const sources = [];
|
|
61
|
+
for (let i = 0; i < p.sources; i++) {
|
|
62
|
+
const x = rng.range(width * 0.1, width * 0.9);
|
|
63
|
+
const y = rng.range(height * 0.1, height * 0.9);
|
|
64
|
+
sources.push({
|
|
65
|
+
x, y,
|
|
66
|
+
baseX: x, baseY: y,
|
|
67
|
+
freq: rng.range(0.5, 1.6),
|
|
68
|
+
phase: rng.range(0, Math.PI * 2),
|
|
69
|
+
orbitAngle: rng.range(0, Math.PI * 2),
|
|
70
|
+
orbitR: rng.range(20, 90),
|
|
71
|
+
orbitSpeed: rng.range(0.003, 0.018) * (rng.bool() ? 1 : -1),
|
|
72
|
+
amplitude: rng.range(0.6, 1.0),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return { time: 0, sources, rng, width, height };
|
|
76
|
+
}
|
|
77
|
+
export function drawPrismaticWave(ctx, state, params = {}, mouse) {
|
|
78
|
+
const p = { ...prismaticWaveDefaults, ...params };
|
|
79
|
+
const { sources, width: W, height: H } = state;
|
|
80
|
+
state.time += p.waveSpeed;
|
|
81
|
+
// Drift wave sources along their orbit paths
|
|
82
|
+
for (const s of sources) {
|
|
83
|
+
s.orbitAngle += s.orbitSpeed * p.waveSpeed;
|
|
84
|
+
s.x = s.baseX + Math.cos(s.orbitAngle) * s.orbitR;
|
|
85
|
+
s.y = s.baseY + Math.sin(s.orbitAngle) * s.orbitR;
|
|
86
|
+
}
|
|
87
|
+
const res = Math.max(3, Math.round(p.resolution));
|
|
88
|
+
const lensR = 220; // cursor lens radius in canvas pixels
|
|
89
|
+
const lensK = p.lensStrength * 40; // max pixel displacement
|
|
90
|
+
// We use hue0 + amplitude * dispersion to spread the spectrum
|
|
91
|
+
const hue0 = p.hueOffset;
|
|
92
|
+
const hueSweep = p.dispersion;
|
|
93
|
+
for (let px = 0; px < W; px += res) {
|
|
94
|
+
for (let py = 0; py < H; py += res) {
|
|
95
|
+
// ── Cursor lens distortion ─────────────────────────────────────────
|
|
96
|
+
// Diverging lens: warps sampling coords outward from cursor center.
|
|
97
|
+
let sx = px, sy = py;
|
|
98
|
+
if (mouse) {
|
|
99
|
+
const dx = px - mouse.x;
|
|
100
|
+
const dy = py - mouse.y;
|
|
101
|
+
const dist = Math.hypot(dx, dy);
|
|
102
|
+
if (dist > 0 && dist < lensR) {
|
|
103
|
+
const t = 1 - dist / lensR;
|
|
104
|
+
const warp = lensK * t * t; // quadratic falloff
|
|
105
|
+
sx = px + (dx / dist) * warp;
|
|
106
|
+
sy = py + (dy / dist) * warp;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// ── Wave superposition ─────────────────────────────────────────────
|
|
110
|
+
// Each source contributes a circular wave: sin(r*freq - time + phase)
|
|
111
|
+
// Chromatic dispersion: a slight per-source frequency offset creates
|
|
112
|
+
// the illusion that different "colors" travel at different speeds.
|
|
113
|
+
let val = 0;
|
|
114
|
+
for (const s of sources) {
|
|
115
|
+
const ddx = sx - s.x;
|
|
116
|
+
const ddy = sy - s.y;
|
|
117
|
+
const r = Math.sqrt(ddx * ddx + ddy * ddy);
|
|
118
|
+
const wave = Math.sin(r * p.frequency * s.freq - state.time + s.phase);
|
|
119
|
+
val += wave * s.amplitude;
|
|
120
|
+
}
|
|
121
|
+
val /= sources.length; // normalize to roughly [-1, 1]
|
|
122
|
+
// ── Spectral color mapping ─────────────────────────────────────────
|
|
123
|
+
// t ∈ [0,1] → hue sweep across the prism spectrum
|
|
124
|
+
const t = (val + 1) * 0.5; // [0, 1]
|
|
125
|
+
const hue = hue0 + t * hueSweep;
|
|
126
|
+
// Lightness: dark at extremes, bright at peaks (t ≈ 0.5 is brightest)
|
|
127
|
+
const peakT = 1 - Math.abs(t - 0.5) * 2; // 0 at edges, 1 at center
|
|
128
|
+
const lightness = lerp(0.06, p.brightness, peakT * peakT);
|
|
129
|
+
const [r, g, b] = hslToRgb(hue, p.saturation, lightness);
|
|
130
|
+
ctx.fillStyle = `rgb(${r},${g},${b})`;
|
|
131
|
+
ctx.fillRect(px, py, res, res);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export function spawnAtClick(state, x, y, params = {}) {
|
|
136
|
+
const p = { ...prismaticWaveDefaults, ...params };
|
|
137
|
+
state.sources.push({
|
|
138
|
+
x, y,
|
|
139
|
+
baseX: x, baseY: y,
|
|
140
|
+
freq: state.rng.range(0.6, 1.4),
|
|
141
|
+
phase: state.rng.range(0, Math.PI * 2),
|
|
142
|
+
orbitAngle: state.rng.range(0, Math.PI * 2),
|
|
143
|
+
orbitR: state.rng.range(10, 60),
|
|
144
|
+
orbitSpeed: state.rng.range(0.005, 0.02) * (state.rng.bool() ? 1 : -1),
|
|
145
|
+
amplitude: 1.0,
|
|
146
|
+
});
|
|
147
|
+
// Cap at 2× the default source count to prevent unbounded growth
|
|
148
|
+
const max = p.sources * 2;
|
|
149
|
+
if (state.sources.length > max) {
|
|
150
|
+
state.sources.splice(0, state.sources.length - max);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
export function resetPrismaticWave(ctx, state, params = {}) {
|
|
154
|
+
ctx.fillStyle = "rgb(6,6,14)";
|
|
155
|
+
ctx.fillRect(0, 0, state.width, state.height);
|
|
156
|
+
return initPrismaticWave(state.width, state.height, params);
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=prismaticWave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prismaticWave.js","sourceRoot":"","sources":["../../../src/components/engines/prismaticWave.ts"],"names":[],"mappings":"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"}
|