af-motion 0.0.0-stage → 1.0.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/CHANGELOG.md +33 -0
- package/LICENSE +201 -0
- package/README.md +203 -3
- package/RELEASE_NOTES.md +115 -0
- package/bin/af-motion.js +16 -0
- package/bin/mcp-server.js +21 -0
- package/dist/3d/adapter.d.ts +29 -0
- package/dist/3d/assets/cache.d.ts +71 -0
- package/dist/3d/assets/index.d.ts +10 -0
- package/dist/3d/assets/inspection.d.ts +19 -0
- package/dist/3d/assets/loaders.d.ts +30 -0
- package/dist/3d/assets/manager.d.ts +69 -0
- package/dist/3d/assets/scene-integration.d.ts +23 -0
- package/dist/3d/assets/types.d.ts +80 -0
- package/dist/3d/assets/validation.d.ts +12 -0
- package/dist/3d/camera/index.d.ts +7 -0
- package/dist/3d/camera/presets.d.ts +8 -0
- package/dist/3d/camera/transitions.d.ts +19 -0
- package/dist/3d/camera/types.d.ts +37 -0
- package/dist/3d/camera/validation.d.ts +9 -0
- package/dist/3d/capabilities.d.ts +11 -0
- package/dist/3d/composition/fallback.d.ts +20 -0
- package/dist/3d/composition/generation.d.ts +24 -0
- package/dist/3d/composition/index.d.ts +12 -0
- package/dist/3d/composition/quality.d.ts +35 -0
- package/dist/3d/composition/recipes.d.ts +34 -0
- package/dist/3d/composition/types.d.ts +88 -0
- package/dist/3d/composition/unified.d.ts +18 -0
- package/dist/3d/environment/index.d.ts +6 -0
- package/dist/3d/environment/presets.d.ts +8 -0
- package/dist/3d/environment/types.d.ts +36 -0
- package/dist/3d/environment/validation.d.ts +9 -0
- package/dist/3d/geometry/cache.d.ts +37 -0
- package/dist/3d/geometry/generators.d.ts +24 -0
- package/dist/3d/geometry/hash.d.ts +10 -0
- package/dist/3d/geometry/index.d.ts +9 -0
- package/dist/3d/geometry/three-adapter.d.ts +15 -0
- package/dist/3d/geometry/types.d.ts +120 -0
- package/dist/3d/geometry/validation.d.ts +6 -0
- package/dist/3d/index.d.ts +32 -0
- package/dist/3d/interaction/camera-controls.d.ts +58 -0
- package/dist/3d/interaction/index.d.ts +8 -0
- package/dist/3d/interaction/manager.d.ts +61 -0
- package/dist/3d/interaction/presets.d.ts +9 -0
- package/dist/3d/interaction/raycaster.d.ts +20 -0
- package/dist/3d/interaction/types.d.ts +78 -0
- package/dist/3d/lighting/index.d.ts +6 -0
- package/dist/3d/lighting/presets.d.ts +8 -0
- package/dist/3d/lighting/types.d.ts +31 -0
- package/dist/3d/lighting/validation.d.ts +17 -0
- package/dist/3d/materials/bridge.d.ts +11 -0
- package/dist/3d/materials/index.d.ts +7 -0
- package/dist/3d/materials/presets.d.ts +9 -0
- package/dist/3d/materials/types.d.ts +43 -0
- package/dist/3d/materials/validation.d.ts +9 -0
- package/dist/3d/morphing/animator.d.ts +19 -0
- package/dist/3d/morphing/correspondence.d.ts +32 -0
- package/dist/3d/morphing/geometry.d.ts +28 -0
- package/dist/3d/morphing/index.d.ts +16 -0
- package/dist/3d/morphing/interpolation.d.ts +45 -0
- package/dist/3d/morphing/morph.d.ts +18 -0
- package/dist/3d/morphing/presets.d.ts +31 -0
- package/dist/3d/morphing/react.d.ts +29 -0
- package/dist/3d/morphing/topology.d.ts +34 -0
- package/dist/3d/morphing/types.d.ts +138 -0
- package/dist/3d/morphing/validation.d.ts +19 -0
- package/dist/3d/optimization/analysis.d.ts +14 -0
- package/dist/3d/optimization/colliders.d.ts +16 -0
- package/dist/3d/optimization/geometry.d.ts +22 -0
- package/dist/3d/optimization/hierarchy.d.ts +14 -0
- package/dist/3d/optimization/index.d.ts +33 -0
- package/dist/3d/optimization/lod.d.ts +13 -0
- package/dist/3d/optimization/materials.d.ts +12 -0
- package/dist/3d/optimization/recommendations.d.ts +13 -0
- package/dist/3d/optimization/skeleton.d.ts +20 -0
- package/dist/3d/optimization/types.d.ts +252 -0
- package/dist/3d/physics/benchmark.d.ts +76 -0
- package/dist/3d/physics/body/inertia.d.ts +61 -0
- package/dist/3d/physics/collision/ccd.d.ts +26 -0
- package/dist/3d/physics/collision/narrowphase.d.ts +15 -0
- package/dist/3d/physics/collision/shapes.d.ts +45 -0
- package/dist/3d/physics/constraints/advanced.d.ts +40 -0
- package/dist/3d/physics/constraints/solver.d.ts +34 -0
- package/dist/3d/physics/constraints/types.d.ts +106 -0
- package/dist/3d/physics/events.d.ts +34 -0
- package/dist/3d/physics/index.d.ts +29 -0
- package/dist/3d/physics/material.d.ts +27 -0
- package/dist/3d/physics/math.d.ts +79 -0
- package/dist/3d/physics/soft/cloth.d.ts +12 -0
- package/dist/3d/physics/soft/collision.d.ts +12 -0
- package/dist/3d/physics/soft/gpu.d.ts +19 -0
- package/dist/3d/physics/soft/pbd.d.ts +20 -0
- package/dist/3d/physics/soft/rope.d.ts +16 -0
- package/dist/3d/physics/soft/soft-body.d.ts +12 -0
- package/dist/3d/physics/soft/types.d.ts +212 -0
- package/dist/3d/physics/solver/integrators.d.ts +25 -0
- package/dist/3d/physics/solver/types.d.ts +28 -0
- package/dist/3d/physics/spatial/spatial-hash.d.ts +51 -0
- package/dist/3d/physics/types.d.ts +579 -0
- package/dist/3d/physics/world.d.ts +106 -0
- package/dist/3d/r3f.d.ts +34 -0
- package/dist/3d/scene.d.ts +8 -0
- package/dist/3d/schema.d.ts +739 -0
- package/dist/3d/schemas/ai-integration.d.ts +201 -0
- package/dist/3d/schemas/correction.d.ts +11 -0
- package/dist/3d/schemas/index.d.ts +12 -0
- package/dist/3d/schemas/schemas.d.ts +361 -0
- package/dist/3d/schemas/serialization.d.ts +22 -0
- package/dist/3d/schemas/types.d.ts +199 -0
- package/dist/3d/schemas/validation.d.ts +33 -0
- package/dist/3d/scroll/controller.d.ts +32 -0
- package/dist/3d/scroll/index.d.ts +6 -0
- package/dist/3d/scroll/presets.d.ts +9 -0
- package/dist/3d/scroll/types.d.ts +53 -0
- package/dist/3d/terrain/biomes.d.ts +18 -0
- package/dist/3d/terrain/chunks.d.ts +20 -0
- package/dist/3d/terrain/erosion.d.ts +15 -0
- package/dist/3d/terrain/heightmap.d.ts +27 -0
- package/dist/3d/terrain/index.d.ts +18 -0
- package/dist/3d/terrain/materials.d.ts +20 -0
- package/dist/3d/terrain/noise.d.ts +25 -0
- package/dist/3d/terrain/physics.d.ts +34 -0
- package/dist/3d/terrain/terrain.d.ts +12 -0
- package/dist/3d/terrain/types.d.ts +235 -0
- package/dist/3d/terrain/vegetation.d.ts +14 -0
- package/dist/3d/types.d.ts +176 -0
- package/dist/3d/world/hydrology.d.ts +12 -0
- package/dist/3d/world/index.d.ts +15 -0
- package/dist/3d/world/lighting.d.ts +16 -0
- package/dist/3d/world/pipeline.d.ts +20 -0
- package/dist/3d/world/population.d.ts +12 -0
- package/dist/3d/world/presets.d.ts +11 -0
- package/dist/3d/world/streaming.d.ts +13 -0
- package/dist/3d/world/types.d.ts +272 -0
- package/dist/3d/world/world.d.ts +64 -0
- package/dist/backgrounds/advanced-gradient.d.ts +32 -0
- package/dist/backgrounds/atmospheric-backgrounds.d.ts +79 -0
- package/dist/backgrounds/aurora.d.ts +24 -0
- package/dist/backgrounds/cosmic-background.d.ts +31 -0
- package/dist/backgrounds/energy-effects.d.ts +78 -0
- package/dist/backgrounds/floating-orbs.d.ts +26 -0
- package/dist/backgrounds/fluid-backgrounds.d.ts +72 -0
- package/dist/backgrounds/geometric-backgrounds.d.ts +78 -0
- package/dist/backgrounds/gradient.d.ts +20 -0
- package/dist/backgrounds/grid.d.ts +22 -0
- package/dist/backgrounds/internal/canvas-lifecycle.d.ts +29 -0
- package/dist/backgrounds/noise.d.ts +20 -0
- package/dist/backgrounds/particle-background.d.ts +37 -0
- package/dist/backgrounds/particle-field.d.ts +22 -0
- package/dist/backgrounds/spotlight.d.ts +20 -0
- package/dist/backgrounds/wave.d.ts +22 -0
- package/dist/catalogue.d.ts +227 -0
- package/dist/catalogue.js +4 -0
- package/dist/chunks/catalogue-ZmbeEdRo.js +59850 -0
- package/dist/chunks/core-animation-CeiI_TEe.js +1394 -0
- package/dist/chunks/motion-choreography-DC6LWvDk.js +4089 -0
- package/dist/chunks/pointer-capture-lrnKAl2I.js +158 -0
- package/dist/chunks/safe-json-D5j34GEB.js +62 -0
- package/dist/chunks/scroll-velocity-BNUHaS0-.js +904 -0
- package/dist/cli/commands/doctor.d.ts +9 -0
- package/dist/cli/commands/example.d.ts +9 -0
- package/dist/cli/commands/info.d.ts +8 -0
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/presets.d.ts +10 -0
- package/dist/cli/commands/validate.d.ts +9 -0
- package/dist/cli/index.d.ts +22 -0
- package/dist/cli/types.d.ts +115 -0
- package/dist/cli/utils/safety.d.ts +11 -0
- package/dist/cli/utils/templates.d.ts +16 -0
- package/dist/cli/utils/terminal.d.ts +29 -0
- package/dist/cli.js +825 -0
- package/dist/core/adaptive-motion.d.ts +100 -0
- package/dist/core/adaptive-quality/controller.d.ts +61 -0
- package/dist/core/adaptive-quality/index.d.ts +13 -0
- package/dist/core/adaptive-quality/metrics.d.ts +33 -0
- package/dist/core/adaptive-quality/policies.d.ts +40 -0
- package/dist/core/adaptive-quality/profile.d.ts +58 -0
- package/dist/core/adaptive-quality/react.d.ts +57 -0
- package/dist/core/adaptive-quality/recommendation.d.ts +12 -0
- package/dist/core/adaptive-quality/resolution.d.ts +22 -0
- package/dist/core/adaptive-quality/types.d.ts +362 -0
- package/dist/core/advanced-motion/adapters.d.ts +20 -0
- package/dist/core/advanced-motion/controller.d.ts +52 -0
- package/dist/core/advanced-motion/index.d.ts +12 -0
- package/dist/core/advanced-motion/recipes.d.ts +16 -0
- package/dist/core/advanced-motion/timeline.d.ts +35 -0
- package/dist/core/advanced-motion/types.d.ts +174 -0
- package/dist/core/advanced-motion/validation.d.ts +11 -0
- package/dist/core/agent-workflows/agent-registry.d.ts +21 -0
- package/dist/core/agent-workflows/agents/accessibility-agent.d.ts +9 -0
- package/dist/core/agent-workflows/agents/composition-agent.d.ts +9 -0
- package/dist/core/agent-workflows/agents/design-to-motion-agent.d.ts +9 -0
- package/dist/core/agent-workflows/agents/index.d.ts +13 -0
- package/dist/core/agent-workflows/agents/motion-intelligence-agent.d.ts +9 -0
- package/dist/core/agent-workflows/agents/performance-agent.d.ts +9 -0
- package/dist/core/agent-workflows/agents/scene-generation-agent.d.ts +9 -0
- package/dist/core/agent-workflows/collaboration-planner.d.ts +38 -0
- package/dist/core/agent-workflows/collaboration-workflows.d.ts +83 -0
- package/dist/core/agent-workflows/communication.d.ts +29 -0
- package/dist/core/agent-workflows/conflict-resolver.d.ts +25 -0
- package/dist/core/agent-workflows/context.d.ts +36 -0
- package/dist/core/agent-workflows/execution-engine.d.ts +30 -0
- package/dist/core/agent-workflows/index.d.ts +20 -0
- package/dist/core/agent-workflows/orchestration-types.d.ts +144 -0
- package/dist/core/agent-workflows/orchestrator.d.ts +29 -0
- package/dist/core/agent-workflows/react.d.ts +71 -0
- package/dist/core/agent-workflows/shared-context.d.ts +36 -0
- package/dist/core/agent-workflows/task-planner.d.ts +42 -0
- package/dist/core/agent-workflows/templates.d.ts +14 -0
- package/dist/core/agent-workflows/tool-registry.d.ts +24 -0
- package/dist/core/agent-workflows/types.d.ts +167 -0
- package/dist/core/ai-ecosystem/capability-registry.d.ts +23 -0
- package/dist/core/ai-ecosystem/index.d.ts +13 -0
- package/dist/core/ai-ecosystem/pipeline.d.ts +19 -0
- package/dist/core/ai-ecosystem/provider.d.ts +19 -0
- package/dist/core/ai-ecosystem/types.d.ts +69 -0
- package/dist/core/ai-motion-intelligence/engine.d.ts +51 -0
- package/dist/core/ai-motion-intelligence/explanation-engine.d.ts +8 -0
- package/dist/core/ai-motion-intelligence/index.d.ts +15 -0
- package/dist/core/ai-motion-intelligence/intent-classifier.d.ts +14 -0
- package/dist/core/ai-motion-intelligence/knowledge-base.d.ts +12 -0
- package/dist/core/ai-motion-intelligence/provider.d.ts +31 -0
- package/dist/core/ai-motion-intelligence/quality-evaluator.d.ts +9 -0
- package/dist/core/ai-motion-intelligence/react.d.ts +14 -0
- package/dist/core/ai-motion-intelligence/recommendation-engine.d.ts +16 -0
- package/dist/core/ai-motion-intelligence/types.d.ts +134 -0
- package/dist/core/ai-motion-registry.d.ts +201 -0
- package/dist/core/animate.d.ts +57 -0
- package/dist/core/animation-intelligence/engine.d.ts +42 -0
- package/dist/core/animation-intelligence/index.d.ts +11 -0
- package/dist/core/animation-intelligence/intent.d.ts +15 -0
- package/dist/core/animation-intelligence/schema.d.ts +42 -0
- package/dist/core/animation-intelligence/scoring.d.ts +15 -0
- package/dist/core/animation-intelligence/types.d.ts +91 -0
- package/dist/core/animation-parallel.d.ts +37 -0
- package/dist/core/animation-presets.d.ts +56 -0
- package/dist/core/animation-sequence.d.ts +37 -0
- package/dist/core/animation-timeline.d.ts +46 -0
- package/dist/core/animation.d.ts +48 -0
- package/dist/core/built-in-palettes.d.ts +331 -0
- package/dist/core/choreography-intelligence/bridge.d.ts +43 -0
- package/dist/core/choreography-intelligence/generator.d.ts +11 -0
- package/dist/core/choreography-intelligence/index.d.ts +11 -0
- package/dist/core/choreography-intelligence/intent.d.ts +11 -0
- package/dist/core/choreography-intelligence/schema.d.ts +76 -0
- package/dist/core/choreography-intelligence/types.d.ts +87 -0
- package/dist/core/composition.d.ts +170 -0
- package/dist/core/configuration-corrector.d.ts +85 -0
- package/dist/core/design-intelligence.d.ts +199 -0
- package/dist/core/design-system.d.ts +206 -0
- package/dist/core/design-to-motion/design-analyzer.d.ts +13 -0
- package/dist/core/design-to-motion/engine.d.ts +34 -0
- package/dist/core/design-to-motion/generator.d.ts +16 -0
- package/dist/core/design-to-motion/index.d.ts +15 -0
- package/dist/core/design-to-motion/input-parser.d.ts +17 -0
- package/dist/core/design-to-motion/motion-planner.d.ts +11 -0
- package/dist/core/design-to-motion/presets.d.ts +11 -0
- package/dist/core/design-to-motion/react.d.ts +13 -0
- package/dist/core/design-to-motion/types.d.ts +221 -0
- package/dist/core/design-to-motion/validator.d.ts +13 -0
- package/dist/core/device-capabilities/classification.d.ts +25 -0
- package/dist/core/device-capabilities/detection.d.ts +27 -0
- package/dist/core/device-capabilities/graphics.d.ts +22 -0
- package/dist/core/device-capabilities/hardware.d.ts +27 -0
- package/dist/core/device-capabilities/index.d.ts +14 -0
- package/dist/core/device-capabilities/monitor.d.ts +19 -0
- package/dist/core/device-capabilities/react.d.ts +24 -0
- package/dist/core/device-capabilities/runtime.d.ts +11 -0
- package/dist/core/device-capabilities/scoring.d.ts +18 -0
- package/dist/core/device-capabilities/types.d.ts +171 -0
- package/dist/core/effect-composer.d.ts +41 -0
- package/dist/core/generation-pipeline.d.ts +135 -0
- package/dist/core/inertia.d.ts +30 -0
- package/dist/core/interactions/cursor-controller.d.ts +9 -0
- package/dist/core/interactions/custom-gestures.d.ts +28 -0
- package/dist/core/interactions/device-capabilities.d.ts +12 -0
- package/dist/core/interactions/drag-controller.d.ts +60 -0
- package/dist/core/interactions/errors.d.ts +13 -0
- package/dist/core/interactions/gesture-classifier.d.ts +43 -0
- package/dist/core/interactions/gesture-intelligence-controller.d.ts +9 -0
- package/dist/core/interactions/gesture-recognizers.d.ts +160 -0
- package/dist/core/interactions/gesture-sequence.d.ts +9 -0
- package/dist/core/interactions/index.d.ts +27 -0
- package/dist/core/interactions/input-normalizer.d.ts +8 -0
- package/dist/core/interactions/interaction-manager.d.ts +43 -0
- package/dist/core/interactions/keyboard-manager.d.ts +16 -0
- package/dist/core/interactions/magnetic-controller.d.ts +9 -0
- package/dist/core/interactions/magnetic-group.d.ts +11 -0
- package/dist/core/interactions/multitouch-controller.d.ts +62 -0
- package/dist/core/interactions/pointer-controller.d.ts +34 -0
- package/dist/core/interactions/pointer-tracker.d.ts +32 -0
- package/dist/core/interactions/prioritizer.d.ts +17 -0
- package/dist/core/interactions/touch-controller.d.ts +35 -0
- package/dist/core/interactions/types.d.ts +710 -0
- package/dist/core/layout/controller.d.ts +56 -0
- package/dist/core/layout/flip.d.ts +21 -0
- package/dist/core/layout/group.d.ts +46 -0
- package/dist/core/layout/index.d.ts +12 -0
- package/dist/core/layout/measure.d.ts +30 -0
- package/dist/core/layout/presets.d.ts +24 -0
- package/dist/core/layout/types.d.ts +189 -0
- package/dist/core/microinteractions/generator.d.ts +11 -0
- package/dist/core/microinteractions/index.d.ts +11 -0
- package/dist/core/microinteractions/intent.d.ts +11 -0
- package/dist/core/microinteractions/runtime.d.ts +25 -0
- package/dist/core/microinteractions/schema.d.ts +82 -0
- package/dist/core/microinteractions/types.d.ts +79 -0
- package/dist/core/motion-choreography.d.ts +163 -0
- package/dist/core/motion-dna.d.ts +129 -0
- package/dist/core/motion-path/animator.d.ts +13 -0
- package/dist/core/motion-path/engine.d.ts +27 -0
- package/dist/core/motion-path/follower.d.ts +8 -0
- package/dist/core/motion-path/index.d.ts +15 -0
- package/dist/core/motion-path/lut.d.ts +33 -0
- package/dist/core/motion-path/parser.d.ts +26 -0
- package/dist/core/motion-path/segments.d.ts +16 -0
- package/dist/core/motion-path/types.d.ts +178 -0
- package/dist/core/motion-path/vector3.d.ts +49 -0
- package/dist/core/motion-recipe.d.ts +171 -0
- package/dist/core/motion-states.d.ts +43 -0
- package/dist/core/motion-validation/consistency.d.ts +11 -0
- package/dist/core/motion-validation/index.d.ts +11 -0
- package/dist/core/motion-validation/optimizer.d.ts +11 -0
- package/dist/core/motion-validation/schema.d.ts +81 -0
- package/dist/core/motion-validation/types.d.ts +53 -0
- package/dist/core/motion-validation/validator.d.ts +11 -0
- package/dist/core/motion.d.ts +7 -0
- package/dist/core/natural-motion.d.ts +110 -0
- package/dist/core/palette-colors.d.ts +16 -0
- package/dist/core/palette-styles.d.ts +12 -0
- package/dist/core/palettes.d.ts +59 -0
- package/dist/core/performance-intelligence/conflicts.d.ts +21 -0
- package/dist/core/performance-intelligence/context.d.ts +48 -0
- package/dist/core/performance-intelligence/coordinator.d.ts +84 -0
- package/dist/core/performance-intelligence/decisions.d.ts +17 -0
- package/dist/core/performance-intelligence/history.d.ts +44 -0
- package/dist/core/performance-intelligence/index.d.ts +15 -0
- package/dist/core/performance-intelligence/policies.d.ts +59 -0
- package/dist/core/performance-intelligence/react.d.ts +78 -0
- package/dist/core/performance-intelligence/report.d.ts +16 -0
- package/dist/core/performance-intelligence/scoring.d.ts +16 -0
- package/dist/core/performance-intelligence/types.d.ts +203 -0
- package/dist/core/performance-optimizer/bottlenecks.d.ts +9 -0
- package/dist/core/performance-optimizer/index.d.ts +13 -0
- package/dist/core/performance-optimizer/optimizer.d.ts +43 -0
- package/dist/core/performance-optimizer/profiler.d.ts +38 -0
- package/dist/core/performance-optimizer/react.d.ts +55 -0
- package/dist/core/performance-optimizer/strategies.d.ts +22 -0
- package/dist/core/performance-optimizer/types.d.ts +227 -0
- package/dist/core/performance-optimizer/workers.d.ts +27 -0
- package/dist/core/physics/collision-constraints.d.ts +15 -0
- package/dist/core/physics/collision-detection.d.ts +93 -0
- package/dist/core/physics/collision-response.d.ts +24 -0
- package/dist/core/physics/collision-types.d.ts +381 -0
- package/dist/core/physics/collision-world.d.ts +11 -0
- package/dist/core/physics/composition-behaviors.d.ts +97 -0
- package/dist/core/physics/composition-choreography.d.ts +14 -0
- package/dist/core/physics/composition-engine.d.ts +25 -0
- package/dist/core/physics/composition-recipes.d.ts +46 -0
- package/dist/core/physics/composition-types.d.ts +265 -0
- package/dist/core/physics/composition-validation.d.ts +33 -0
- package/dist/core/physics/index.d.ts +37 -0
- package/dist/core/physics/inertia-animation.d.ts +11 -0
- package/dist/core/physics/inertia-math.d.ts +56 -0
- package/dist/core/physics/inertia-presets.d.ts +25 -0
- package/dist/core/physics/inertia-simulation.d.ts +11 -0
- package/dist/core/physics/inertia-types.d.ts +355 -0
- package/dist/core/physics/inertia-validation.d.ts +22 -0
- package/dist/core/physics/math.d.ts +99 -0
- package/dist/core/physics/presets.d.ts +28 -0
- package/dist/core/physics/simulation.d.ts +11 -0
- package/dist/core/physics/spring-animation.d.ts +11 -0
- package/dist/core/physics/spring-math.d.ts +47 -0
- package/dist/core/physics/spring-presets.d.ts +29 -0
- package/dist/core/physics/spring-simulation.d.ts +11 -0
- package/dist/core/physics/spring-types.d.ts +350 -0
- package/dist/core/physics/spring-validation.d.ts +22 -0
- package/dist/core/physics/stepper.d.ts +24 -0
- package/dist/core/physics/types.d.ts +280 -0
- package/dist/core/physics/validation.d.ts +62 -0
- package/dist/core/pointer-capture.d.ts +7 -0
- package/dist/core/reference-analysis/index.d.ts +10 -0
- package/dist/core/reference-analysis/interpreter.d.ts +12 -0
- package/dist/core/reference-analysis/planner.d.ts +15 -0
- package/dist/core/reference-analysis/specification.d.ts +14 -0
- package/dist/core/reference-analysis/types.d.ts +244 -0
- package/dist/core/resource-intelligence/cache.d.ts +43 -0
- package/dist/core/resource-intelligence/gpu.d.ts +19 -0
- package/dist/core/resource-intelligence/index.d.ts +16 -0
- package/dist/core/resource-intelligence/leaks.d.ts +13 -0
- package/dist/core/resource-intelligence/memory.d.ts +27 -0
- package/dist/core/resource-intelligence/pooling.d.ts +32 -0
- package/dist/core/resource-intelligence/pressure.d.ts +32 -0
- package/dist/core/resource-intelligence/react.d.ts +63 -0
- package/dist/core/resource-intelligence/registry.d.ts +33 -0
- package/dist/core/resource-intelligence/reports.d.ts +14 -0
- package/dist/core/resource-intelligence/types.d.ts +232 -0
- package/dist/core/scene-generation/engine.d.ts +31 -0
- package/dist/core/scene-generation/generator.d.ts +14 -0
- package/dist/core/scene-generation/index.d.ts +14 -0
- package/dist/core/scene-generation/input-parser.d.ts +24 -0
- package/dist/core/scene-generation/presets.d.ts +10 -0
- package/dist/core/scene-generation/react.d.ts +13 -0
- package/dist/core/scene-generation/scene-analyzer.d.ts +9 -0
- package/dist/core/scene-generation/scene-planner.d.ts +12 -0
- package/dist/core/scene-generation/types.d.ts +236 -0
- package/dist/core/scene-generation/validator.d.ts +18 -0
- package/dist/core/schema.d.ts +185 -0
- package/dist/core/scroll-intelligence/generator.d.ts +11 -0
- package/dist/core/scroll-intelligence/index.d.ts +11 -0
- package/dist/core/scroll-intelligence/intent.d.ts +11 -0
- package/dist/core/scroll-intelligence/runtime.d.ts +21 -0
- package/dist/core/scroll-intelligence/schema.d.ts +78 -0
- package/dist/core/scroll-intelligence/types.d.ts +85 -0
- package/dist/core/spring.d.ts +38 -0
- package/dist/core/svg-morph/animator.d.ts +10 -0
- package/dist/core/svg-morph/arc-to-cubic.d.ts +11 -0
- package/dist/core/svg-morph/index.d.ts +10 -0
- package/dist/core/svg-morph/interpolate.d.ts +23 -0
- package/dist/core/svg-morph/normalize.d.ts +34 -0
- package/dist/core/svg-morph/parser.d.ts +13 -0
- package/dist/core/svg-morph/shapes.d.ts +32 -0
- package/dist/core/svg-morph/types.d.ts +144 -0
- package/dist/core/transform.d.ts +27 -0
- package/dist/core/transitions/controller.d.ts +45 -0
- package/dist/core/transitions/engine.d.ts +26 -0
- package/dist/core/transitions/group-transition.d.ts +30 -0
- package/dist/core/transitions/index.d.ts +15 -0
- package/dist/core/transitions/presets.d.ts +16 -0
- package/dist/core/transitions/schema.d.ts +71 -0
- package/dist/core/transitions/shared-element-transition.d.ts +88 -0
- package/dist/core/transitions/shared-element.d.ts +84 -0
- package/dist/core/transitions/types.d.ts +185 -0
- package/dist/core/transitions/view-transition.d.ts +25 -0
- package/dist/core/typography/engine.d.ts +19 -0
- package/dist/core/typography/index.d.ts +15 -0
- package/dist/core/typography/path-motion.d.ts +24 -0
- package/dist/core/typography/presets.d.ts +14 -0
- package/dist/core/typography/properties.d.ts +19 -0
- package/dist/core/typography/segmenter.d.ts +32 -0
- package/dist/core/typography/stagger.d.ts +15 -0
- package/dist/core/typography/transitions.d.ts +11 -0
- package/dist/core/typography/types.d.ts +154 -0
- package/dist/core/utils/safe-json.d.ts +50 -0
- package/dist/core/visual-style-registry.d.ts +659 -0
- package/dist/easing/easings.d.ts +44 -0
- package/dist/effects/border-beam.d.ts +28 -0
- package/dist/effects/count-up.d.ts +30 -0
- package/dist/effects/cursor-trail.d.ts +23 -0
- package/dist/effects/drag.d.ts +41 -0
- package/dist/effects/draw-svg.d.ts +19 -0
- package/dist/effects/follow-pointer.d.ts +19 -0
- package/dist/effects/glow.d.ts +25 -0
- package/dist/effects/gradient-text.d.ts +22 -0
- package/dist/effects/hover-motion.d.ts +32 -0
- package/dist/effects/in-view.d.ts +14 -0
- package/dist/effects/magnetic.d.ts +40 -0
- package/dist/effects/morph-svg.d.ts +15 -0
- package/dist/effects/parallax.d.ts +42 -0
- package/dist/effects/pinch.d.ts +27 -0
- package/dist/effects/reveal.d.ts +33 -0
- package/dist/effects/ripple.d.ts +21 -0
- package/dist/effects/scroll-animate.d.ts +23 -0
- package/dist/effects/scroll-direction.d.ts +19 -0
- package/dist/effects/scroll-progress.d.ts +29 -0
- package/dist/effects/scroll-trigger.d.ts +22 -0
- package/dist/effects/scroll-velocity.d.ts +29 -0
- package/dist/effects/shine.d.ts +23 -0
- package/dist/effects/split-text.d.ts +17 -0
- package/dist/effects/spotlight.d.ts +24 -0
- package/dist/effects/stagger.d.ts +46 -0
- package/dist/effects/swipe.d.ts +27 -0
- package/dist/effects/text-highlight.d.ts +25 -0
- package/dist/effects/text-mask.d.ts +25 -0
- package/dist/effects/text-reveal.d.ts +28 -0
- package/dist/effects/text-scramble.d.ts +18 -0
- package/dist/effects/tilt.d.ts +42 -0
- package/dist/effects/typewriter.d.ts +26 -0
- package/dist/graphics/capabilities.d.ts +12 -0
- package/dist/graphics/composition/engine.d.ts +14 -0
- package/dist/graphics/composition/fallback.d.ts +13 -0
- package/dist/graphics/composition/index.d.ts +10 -0
- package/dist/graphics/composition/ordering.d.ts +29 -0
- package/dist/graphics/composition/quality.d.ts +24 -0
- package/dist/graphics/composition/schema.d.ts +156 -0
- package/dist/graphics/composition/types.d.ts +81 -0
- package/dist/graphics/composition/unified.d.ts +23 -0
- package/dist/graphics/effects/advanced/engine.d.ts +9 -0
- package/dist/graphics/effects/advanced/index.d.ts +1 -0
- package/dist/graphics/effects/composer.d.ts +9 -0
- package/dist/graphics/effects/distortion/engine.d.ts +9 -0
- package/dist/graphics/effects/distortion/index.d.ts +1 -0
- package/dist/graphics/effects/fluid/engine.d.ts +9 -0
- package/dist/graphics/effects/fluid/index.d.ts +1 -0
- package/dist/graphics/effects/index.d.ts +10 -0
- package/dist/graphics/effects/particles/engine.d.ts +9 -0
- package/dist/graphics/effects/particles/index.d.ts +2 -0
- package/dist/graphics/effects/particles/pool.d.ts +17 -0
- package/dist/graphics/effects/schema.d.ts +312 -0
- package/dist/graphics/effects/types.d.ts +85 -0
- package/dist/graphics/engine.d.ts +5 -0
- package/dist/graphics/environment/clouds.d.ts +28 -0
- package/dist/graphics/environment/environment.d.ts +50 -0
- package/dist/graphics/environment/fire-smoke.d.ts +32 -0
- package/dist/graphics/environment/fog.d.ts +28 -0
- package/dist/graphics/environment/index.d.ts +18 -0
- package/dist/graphics/environment/lightning.d.ts +33 -0
- package/dist/graphics/environment/rain.d.ts +33 -0
- package/dist/graphics/environment/snow.d.ts +30 -0
- package/dist/graphics/environment/types.d.ts +184 -0
- package/dist/graphics/environment/weather.d.ts +19 -0
- package/dist/graphics/environment/wind.d.ts +23 -0
- package/dist/graphics/fluid/flow-field.d.ts +74 -0
- package/dist/graphics/fluid/grid.d.ts +43 -0
- package/dist/graphics/fluid/index.d.ts +13 -0
- package/dist/graphics/fluid/interactions.d.ts +39 -0
- package/dist/graphics/fluid/rendering.d.ts +32 -0
- package/dist/graphics/fluid/simulation.d.ts +50 -0
- package/dist/graphics/fluid/solver.d.ts +19 -0
- package/dist/graphics/fluid/types.d.ts +186 -0
- package/dist/graphics/gpu-simulation/backends/backend.d.ts +24 -0
- package/dist/graphics/gpu-simulation/backends/cpu.d.ts +21 -0
- package/dist/graphics/gpu-simulation/backends/selection.d.ts +15 -0
- package/dist/graphics/gpu-simulation/backends/webgl2.d.ts +28 -0
- package/dist/graphics/gpu-simulation/backends/webgpu.d.ts +23 -0
- package/dist/graphics/gpu-simulation/capabilities.d.ts +14 -0
- package/dist/graphics/gpu-simulation/device.d.ts +17 -0
- package/dist/graphics/gpu-simulation/engine.d.ts +8 -0
- package/dist/graphics/gpu-simulation/index.d.ts +22 -0
- package/dist/graphics/gpu-simulation/ping-pong.d.ts +23 -0
- package/dist/graphics/gpu-simulation/pipeline.d.ts +18 -0
- package/dist/graphics/gpu-simulation/resource-manager.d.ts +8 -0
- package/dist/graphics/gpu-simulation/shaders.d.ts +50 -0
- package/dist/graphics/gpu-simulation/types.d.ts +288 -0
- package/dist/graphics/index.d.ts +23 -0
- package/dist/graphics/materials/glass.d.ts +22 -0
- package/dist/graphics/materials/index.d.ts +9 -0
- package/dist/graphics/materials/lighting.d.ts +22 -0
- package/dist/graphics/materials/presets.d.ts +28 -0
- package/dist/graphics/materials/schema.d.ts +574 -0
- package/dist/graphics/materials/surface.d.ts +13 -0
- package/dist/graphics/materials/types.d.ts +150 -0
- package/dist/graphics/particle-fields/composition.d.ts +32 -0
- package/dist/graphics/particle-fields/forces.d.ts +103 -0
- package/dist/graphics/particle-fields/index.d.ts +12 -0
- package/dist/graphics/particle-fields/interaction.d.ts +32 -0
- package/dist/graphics/particle-fields/spatial-index.d.ts +20 -0
- package/dist/graphics/particle-fields/system.d.ts +52 -0
- package/dist/graphics/particle-fields/types.d.ts +138 -0
- package/dist/graphics/particles/behaviors.d.ts +11 -0
- package/dist/graphics/particles/controller.d.ts +82 -0
- package/dist/graphics/particles/data-layout.d.ts +51 -0
- package/dist/graphics/particles/emitters.d.ts +24 -0
- package/dist/graphics/particles/index.d.ts +15 -0
- package/dist/graphics/particles/random.d.ts +25 -0
- package/dist/graphics/particles/rendering.d.ts +16 -0
- package/dist/graphics/particles/simulation.d.ts +23 -0
- package/dist/graphics/particles/types.d.ts +282 -0
- package/dist/graphics/renderer.d.ts +66 -0
- package/dist/graphics/resource-manager.d.ts +6 -0
- package/dist/graphics/schema.d.ts +177 -0
- package/dist/graphics/simulation/adapters.d.ts +36 -0
- package/dist/graphics/simulation/coordinator.d.ts +64 -0
- package/dist/graphics/simulation/index.d.ts +11 -0
- package/dist/graphics/simulation/optimizer.d.ts +101 -0
- package/dist/graphics/simulation/resource-manager.d.ts +40 -0
- package/dist/graphics/simulation/types.d.ts +126 -0
- package/dist/graphics/textures/cache.d.ts +29 -0
- package/dist/graphics/textures/canvas-utils.d.ts +31 -0
- package/dist/graphics/textures/engine.d.ts +34 -0
- package/dist/graphics/textures/generators.d.ts +29 -0
- package/dist/graphics/textures/index.d.ts +11 -0
- package/dist/graphics/textures/material-integration.d.ts +20 -0
- package/dist/graphics/textures/prng.d.ts +27 -0
- package/dist/graphics/textures/schema.d.ts +219 -0
- package/dist/graphics/textures/types.d.ts +80 -0
- package/dist/graphics/types.d.ts +152 -0
- package/dist/graphics/viewport.d.ts +32 -0
- package/dist/index.d.ts +132 -0
- package/dist/index.js +4921 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/prompts.d.ts +9 -0
- package/dist/mcp/resources.d.ts +9 -0
- package/dist/mcp/server.d.ts +29 -0
- package/dist/mcp/tools.d.ts +9 -0
- package/dist/mcp/transport.d.ts +33 -0
- package/dist/mcp/types.d.ts +96 -0
- package/dist/presets.d.ts +176 -0
- package/dist/presets.js +3 -0
- package/dist/react.d.ts +5358 -0
- package/dist/react.js +7557 -0
- package/package.json +112 -6
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine — Memory Layout & Pool
|
|
3
|
+
*
|
|
4
|
+
* Implements a high-performance contiguous Float32Array particle storage pool
|
|
5
|
+
* with an O(1) free-list recycling queue, zero garbage collection allocations,
|
|
6
|
+
* and GPU buffer mapping compatibility.
|
|
7
|
+
*/
|
|
8
|
+
import type { ParticleAccessor, ParticleDataPool, ParticleSpawnData } from "./types.js";
|
|
9
|
+
export declare const PARTICLE_STRIDE = 24;
|
|
10
|
+
export declare const OFFSET_POS_X = 0;
|
|
11
|
+
export declare const OFFSET_POS_Y = 1;
|
|
12
|
+
export declare const OFFSET_POS_Z = 2;
|
|
13
|
+
export declare const OFFSET_LIFE = 3;
|
|
14
|
+
export declare const OFFSET_VEL_X = 4;
|
|
15
|
+
export declare const OFFSET_VEL_Y = 5;
|
|
16
|
+
export declare const OFFSET_VEL_Z = 6;
|
|
17
|
+
export declare const OFFSET_MAX_LIFE = 7;
|
|
18
|
+
export declare const OFFSET_ACC_X = 8;
|
|
19
|
+
export declare const OFFSET_ACC_Y = 9;
|
|
20
|
+
export declare const OFFSET_ACC_Z = 10;
|
|
21
|
+
export declare const OFFSET_SIZE = 11;
|
|
22
|
+
export declare const OFFSET_ROTATION = 12;
|
|
23
|
+
export declare const OFFSET_ANGULAR_VEL = 13;
|
|
24
|
+
export declare const OFFSET_OPACITY = 14;
|
|
25
|
+
export declare const OFFSET_MASS = 15;
|
|
26
|
+
export declare const OFFSET_COLOR_R = 16;
|
|
27
|
+
export declare const OFFSET_COLOR_G = 17;
|
|
28
|
+
export declare const OFFSET_COLOR_B = 18;
|
|
29
|
+
export declare const OFFSET_COLOR_A = 19;
|
|
30
|
+
export declare const OFFSET_START_SIZE = 20;
|
|
31
|
+
export declare const OFFSET_END_SIZE = 21;
|
|
32
|
+
export declare const OFFSET_START_OPACITY = 22;
|
|
33
|
+
export declare const OFFSET_END_OPACITY = 23;
|
|
34
|
+
export declare class ParticlePoolImpl implements ParticleDataPool {
|
|
35
|
+
readonly capacity: number;
|
|
36
|
+
readonly stride = 24;
|
|
37
|
+
readonly buffer: Float32Array;
|
|
38
|
+
private freeList;
|
|
39
|
+
private freeHead;
|
|
40
|
+
private activeIndices;
|
|
41
|
+
private activeCount;
|
|
42
|
+
private slotToActivePos;
|
|
43
|
+
constructor(capacity: number);
|
|
44
|
+
get count(): number;
|
|
45
|
+
spawn(data: ParticleSpawnData): number;
|
|
46
|
+
kill(slot: number): void;
|
|
47
|
+
getAccessor(slot: number): ParticleAccessor;
|
|
48
|
+
getActiveIndices(): Int32Array;
|
|
49
|
+
clear(): void;
|
|
50
|
+
}
|
|
51
|
+
export declare function createParticleDataPool(capacity: number): ParticleDataPool;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine — Emitter System
|
|
3
|
+
*
|
|
4
|
+
* Implements configurable geometric particle emitters (point, line, circle,
|
|
5
|
+
* rectangle, sphere, box, cone, custom) with continuous and burst spawning.
|
|
6
|
+
*/
|
|
7
|
+
import type { EmitterShape, ParticleDataPool, ParticleEmitter, ParticleEmitterConfig, ParticleVector3Tuple as Vector3Tuple } from "./types.js";
|
|
8
|
+
export declare class ParticleEmitterImpl implements ParticleEmitter {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly config: ParticleEmitterConfig;
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
rate: number;
|
|
13
|
+
private spawnAccumulator;
|
|
14
|
+
constructor(config: ParticleEmitterConfig);
|
|
15
|
+
update(dt: number, pool: ParticleDataPool, prng: () => number): number;
|
|
16
|
+
burst(count: number, pool: ParticleDataPool, prng: () => number): number;
|
|
17
|
+
private spawnParticles;
|
|
18
|
+
private generateParticleData;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Samples a random 3D position vector from a given emitter shape.
|
|
22
|
+
*/
|
|
23
|
+
export declare function sampleShapePosition(shape: EmitterShape, prng: () => number): Vector3Tuple;
|
|
24
|
+
export declare function createParticleEmitter(config: ParticleEmitterConfig): ParticleEmitter;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine
|
|
3
|
+
*
|
|
4
|
+
* High-performance, framework-independent particle system architecture
|
|
5
|
+
* supporting millions-scale GPU-accelerated simulation, composable behaviors,
|
|
6
|
+
* multiple geometric emitters, and deterministic CPU fallback.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./types.js";
|
|
9
|
+
export { createParticlePRNG, parseParticleColor, resolveRange, randomDirectionInCone, } from "./random.js";
|
|
10
|
+
export * from "./data-layout.js";
|
|
11
|
+
export * from "./emitters.js";
|
|
12
|
+
export * from "./behaviors.js";
|
|
13
|
+
export * from "./simulation.js";
|
|
14
|
+
export * from "./rendering.js";
|
|
15
|
+
export * from "./controller.js";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine — Deterministic Randomness
|
|
3
|
+
*
|
|
4
|
+
* Provides seeded Mulberry32 pseudo-random number generation for deterministic,
|
|
5
|
+
* reproducible particle simulations, random distributions, and vectors.
|
|
6
|
+
*/
|
|
7
|
+
import type { ParticleColorInput, ParticleVector3Tuple, ParticleVector4Tuple } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Creates a deterministic PRNG returning numbers in [0, 1), reusing the textures Mulberry32 engine.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createParticlePRNG(seed?: number | string): () => number;
|
|
12
|
+
export { createParticlePRNG as createPRNG };
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a range [min, max] or fixed number with a given PRNG.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveRange(value: number | readonly [number, number] | undefined, defaultVal: number, prng: () => number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Generates a random unit vector on a sphere surface or inside a cone.
|
|
19
|
+
*/
|
|
20
|
+
export declare function randomDirectionInCone(baseDirection: ParticleVector3Tuple, spreadAngleRad: number, prng: () => number): ParticleVector3Tuple;
|
|
21
|
+
/**
|
|
22
|
+
* Parses a ParticleColorInput into an RGBA [r, g, b, a] normalized [0, 1] tuple.
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseParticleColor(color: ParticleColorInput | undefined, defaultColor?: ParticleVector4Tuple): ParticleVector4Tuple;
|
|
25
|
+
export { parseParticleColor as parseColor };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine — Rendering Strategies
|
|
3
|
+
*
|
|
4
|
+
* Implements GPU-accelerated point-sprite & instanced rendering via WebGL2,
|
|
5
|
+
* alongside high-performance Canvas2D batch rendering fallback.
|
|
6
|
+
*/
|
|
7
|
+
import type { ParticleDataPool, ParticleRenderOptions } from "./types.js";
|
|
8
|
+
export interface WebGL2ParticleRenderer {
|
|
9
|
+
render(pool: ParticleDataPool, options?: ParticleRenderOptions): void;
|
|
10
|
+
dispose(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createWebGL2ParticleRenderer(gl: WebGL2RenderingContext): WebGL2ParticleRenderer;
|
|
13
|
+
/**
|
|
14
|
+
* High-performance 2D Canvas particle renderer fallback.
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderParticlesCanvas2D(pool: ParticleDataPool, canvas: HTMLCanvasElement, options?: ParticleRenderOptions): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine — Simulation Stepper
|
|
3
|
+
*
|
|
4
|
+
* Implements deterministic physics integration, substepping, lifetime decay,
|
|
5
|
+
* property interpolation (size, opacity, rotation), and dead particle recycling.
|
|
6
|
+
*/
|
|
7
|
+
import type { ParticleBehavior, ParticleDataPool, ParticleEmitter } from "./types.js";
|
|
8
|
+
export interface SimulationStepOptions {
|
|
9
|
+
readonly pool: ParticleDataPool;
|
|
10
|
+
readonly emitters: readonly ParticleEmitter[];
|
|
11
|
+
readonly behaviors: readonly ParticleBehavior[];
|
|
12
|
+
readonly dt: number;
|
|
13
|
+
readonly substeps?: number;
|
|
14
|
+
readonly prng: () => number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Performs a complete simulation update cycle (spawning, behaviors, integration, recycling).
|
|
18
|
+
*/
|
|
19
|
+
export declare function stepParticleSimulation(options: SimulationStepOptions): void;
|
|
20
|
+
/**
|
|
21
|
+
* Updates positions, velocities, lifetimes, sizes, opacities, and recycles dead particles.
|
|
22
|
+
*/
|
|
23
|
+
export declare function integrateParticles(pool: ParticleDataPool, dt: number): void;
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion Advanced Particle Engine — Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* High-performance, framework-independent particle system architecture
|
|
5
|
+
* supporting millions-scale GPU-accelerated simulation and deterministic CPU fallback.
|
|
6
|
+
*/
|
|
7
|
+
import type { ComputeBackendType, ComputeDevice } from "../gpu-simulation/types.js";
|
|
8
|
+
import type { GraphicsQualityLevel } from "../composition/types.js";
|
|
9
|
+
import type { ColorRGBA } from "../textures/canvas-utils.js";
|
|
10
|
+
export type ParticleVector3Tuple = readonly [number, number, number];
|
|
11
|
+
export type ParticleVector4Tuple = readonly [number, number, number, number];
|
|
12
|
+
export type ParticleBlendMode = "alpha" | "additive" | "multiply" | "screen";
|
|
13
|
+
export type ParticleRenderStrategy = "gpu-points" | "gpu-quads" | "canvas2d" | "auto";
|
|
14
|
+
export type EmitterShapeType = "point" | "line" | "circle" | "rectangle" | "sphere" | "box" | "cone" | "custom";
|
|
15
|
+
export type BoundaryAction = "bounce" | "wrap" | "kill" | "none";
|
|
16
|
+
export type ParticleColorInput = ColorRGBA | ParticleVector4Tuple | string;
|
|
17
|
+
export interface ParticleSpawnData {
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
z: number;
|
|
21
|
+
vx: number;
|
|
22
|
+
vy: number;
|
|
23
|
+
vz: number;
|
|
24
|
+
ax: number;
|
|
25
|
+
ay: number;
|
|
26
|
+
az: number;
|
|
27
|
+
life: number;
|
|
28
|
+
maxLife: number;
|
|
29
|
+
startSize: number;
|
|
30
|
+
endSize: number;
|
|
31
|
+
startRotation: number;
|
|
32
|
+
angularVelocity: number;
|
|
33
|
+
startOpacity: number;
|
|
34
|
+
endOpacity: number;
|
|
35
|
+
startColor: ParticleVector4Tuple;
|
|
36
|
+
endColor: ParticleVector4Tuple;
|
|
37
|
+
mass: number;
|
|
38
|
+
}
|
|
39
|
+
export interface PointEmitterShape {
|
|
40
|
+
readonly type: "point";
|
|
41
|
+
readonly position?: ParticleVector3Tuple;
|
|
42
|
+
}
|
|
43
|
+
export interface LineEmitterShape {
|
|
44
|
+
readonly type: "line";
|
|
45
|
+
readonly start: ParticleVector3Tuple;
|
|
46
|
+
readonly end: ParticleVector3Tuple;
|
|
47
|
+
}
|
|
48
|
+
export interface CircleEmitterShape {
|
|
49
|
+
readonly type: "circle";
|
|
50
|
+
readonly center?: ParticleVector3Tuple;
|
|
51
|
+
readonly radius: number;
|
|
52
|
+
readonly innerRadius?: number;
|
|
53
|
+
readonly plane?: "xy" | "xz" | "yz";
|
|
54
|
+
}
|
|
55
|
+
export interface RectangleEmitterShape {
|
|
56
|
+
readonly type: "rectangle";
|
|
57
|
+
readonly center?: ParticleVector3Tuple;
|
|
58
|
+
readonly width: number;
|
|
59
|
+
readonly height: number;
|
|
60
|
+
readonly plane?: "xy" | "xz" | "yz";
|
|
61
|
+
}
|
|
62
|
+
export interface SphereEmitterShape {
|
|
63
|
+
readonly type: "sphere";
|
|
64
|
+
readonly center?: ParticleVector3Tuple;
|
|
65
|
+
readonly radius: number;
|
|
66
|
+
readonly innerRadius?: number;
|
|
67
|
+
readonly surfaceOnly?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface BoxEmitterShape {
|
|
70
|
+
readonly type: "box";
|
|
71
|
+
readonly center?: ParticleVector3Tuple;
|
|
72
|
+
readonly dimensions: ParticleVector3Tuple;
|
|
73
|
+
}
|
|
74
|
+
export interface ConeEmitterShape {
|
|
75
|
+
readonly type: "cone";
|
|
76
|
+
readonly apex?: ParticleVector3Tuple;
|
|
77
|
+
readonly direction: ParticleVector3Tuple;
|
|
78
|
+
readonly angle: number;
|
|
79
|
+
readonly baseRadius: number;
|
|
80
|
+
readonly height: number;
|
|
81
|
+
}
|
|
82
|
+
export interface CustomEmitterShape {
|
|
83
|
+
readonly type: "custom";
|
|
84
|
+
readonly generate: (index: number, prng: () => number) => Partial<ParticleSpawnData>;
|
|
85
|
+
}
|
|
86
|
+
export type EmitterShape = PointEmitterShape | LineEmitterShape | CircleEmitterShape | RectangleEmitterShape | SphereEmitterShape | BoxEmitterShape | ConeEmitterShape | CustomEmitterShape;
|
|
87
|
+
export interface ParticleEmitterConfig {
|
|
88
|
+
readonly id?: string;
|
|
89
|
+
readonly shape?: EmitterShape;
|
|
90
|
+
readonly rate?: number;
|
|
91
|
+
readonly burstCount?: number;
|
|
92
|
+
readonly maxParticles?: number;
|
|
93
|
+
readonly lifetime?: number | readonly [number, number];
|
|
94
|
+
readonly speed?: number | readonly [number, number];
|
|
95
|
+
readonly direction?: ParticleVector3Tuple;
|
|
96
|
+
readonly spread?: number;
|
|
97
|
+
readonly size?: number | readonly [number, number];
|
|
98
|
+
readonly opacity?: number | readonly [number, number];
|
|
99
|
+
readonly rotation?: number | readonly [number, number];
|
|
100
|
+
readonly angularVelocity?: number | readonly [number, number];
|
|
101
|
+
readonly color?: ParticleColorInput | readonly [ParticleColorInput, ParticleColorInput];
|
|
102
|
+
readonly mass?: number | readonly [number, number];
|
|
103
|
+
readonly seed?: number;
|
|
104
|
+
readonly enabled?: boolean;
|
|
105
|
+
}
|
|
106
|
+
export interface ParticleEmitter {
|
|
107
|
+
readonly id: string;
|
|
108
|
+
readonly config: ParticleEmitterConfig;
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
rate: number;
|
|
111
|
+
update(dt: number, pool: ParticleDataPool, prng: () => number): number;
|
|
112
|
+
burst(count: number, pool: ParticleDataPool, prng: () => number): number;
|
|
113
|
+
}
|
|
114
|
+
export interface ParticleAccessor {
|
|
115
|
+
readonly index: number;
|
|
116
|
+
x: number;
|
|
117
|
+
y: number;
|
|
118
|
+
z: number;
|
|
119
|
+
vx: number;
|
|
120
|
+
vy: number;
|
|
121
|
+
vz: number;
|
|
122
|
+
ax: number;
|
|
123
|
+
ay: number;
|
|
124
|
+
az: number;
|
|
125
|
+
life: number;
|
|
126
|
+
maxLife: number;
|
|
127
|
+
size: number;
|
|
128
|
+
rotation: number;
|
|
129
|
+
angularVelocity: number;
|
|
130
|
+
opacity: number;
|
|
131
|
+
mass: number;
|
|
132
|
+
color: ParticleVector4Tuple;
|
|
133
|
+
}
|
|
134
|
+
export type ParticleBehaviorType = "gravity" | "directional-force" | "radial-force" | "attraction" | "repulsion" | "drag" | "friction" | "turbulence" | "velocity-limits" | "boundary-constraints" | "custom";
|
|
135
|
+
export interface GravityBehavior {
|
|
136
|
+
readonly id?: string;
|
|
137
|
+
readonly type: "gravity";
|
|
138
|
+
readonly force?: ParticleVector3Tuple;
|
|
139
|
+
readonly gpuCompatible?: true;
|
|
140
|
+
}
|
|
141
|
+
export interface DirectionalForceBehavior {
|
|
142
|
+
readonly id?: string;
|
|
143
|
+
readonly type: "directional-force";
|
|
144
|
+
readonly force: ParticleVector3Tuple;
|
|
145
|
+
readonly gpuCompatible?: true;
|
|
146
|
+
}
|
|
147
|
+
export interface RadialForceBehavior {
|
|
148
|
+
readonly id?: string;
|
|
149
|
+
readonly type: "radial-force";
|
|
150
|
+
readonly center: ParticleVector3Tuple;
|
|
151
|
+
readonly strength: number;
|
|
152
|
+
readonly radius?: number;
|
|
153
|
+
readonly gpuCompatible?: true;
|
|
154
|
+
}
|
|
155
|
+
export interface AttractionBehavior {
|
|
156
|
+
readonly id?: string;
|
|
157
|
+
readonly type: "attraction";
|
|
158
|
+
readonly target: ParticleVector3Tuple;
|
|
159
|
+
readonly strength: number;
|
|
160
|
+
readonly radius?: number;
|
|
161
|
+
readonly falloff?: "linear" | "inverse-square";
|
|
162
|
+
readonly gpuCompatible?: true;
|
|
163
|
+
}
|
|
164
|
+
export interface RepulsionBehavior {
|
|
165
|
+
readonly id?: string;
|
|
166
|
+
readonly type: "repulsion";
|
|
167
|
+
readonly center: ParticleVector3Tuple;
|
|
168
|
+
readonly strength: number;
|
|
169
|
+
readonly radius?: number;
|
|
170
|
+
readonly gpuCompatible?: true;
|
|
171
|
+
}
|
|
172
|
+
export interface DragBehavior {
|
|
173
|
+
readonly id?: string;
|
|
174
|
+
readonly type: "drag";
|
|
175
|
+
readonly coefficient: number;
|
|
176
|
+
readonly gpuCompatible?: true;
|
|
177
|
+
}
|
|
178
|
+
export interface FrictionBehavior {
|
|
179
|
+
readonly id?: string;
|
|
180
|
+
readonly type: "friction";
|
|
181
|
+
readonly coefficient: number;
|
|
182
|
+
readonly gpuCompatible?: true;
|
|
183
|
+
}
|
|
184
|
+
export interface TurbulenceBehavior {
|
|
185
|
+
readonly id?: string;
|
|
186
|
+
readonly type: "turbulence";
|
|
187
|
+
readonly frequency: number;
|
|
188
|
+
readonly strength: number;
|
|
189
|
+
readonly octaves?: number;
|
|
190
|
+
readonly gpuCompatible?: true;
|
|
191
|
+
}
|
|
192
|
+
export interface VelocityLimitsBehavior {
|
|
193
|
+
readonly id?: string;
|
|
194
|
+
readonly type: "velocity-limits";
|
|
195
|
+
readonly minSpeed?: number;
|
|
196
|
+
readonly maxSpeed?: number;
|
|
197
|
+
readonly gpuCompatible?: true;
|
|
198
|
+
}
|
|
199
|
+
export interface BoundaryConstraintsBehavior {
|
|
200
|
+
readonly id?: string;
|
|
201
|
+
readonly type: "boundary-constraints";
|
|
202
|
+
readonly bounds: readonly [number, number, number, number, number, number];
|
|
203
|
+
readonly action?: BoundaryAction;
|
|
204
|
+
readonly restitution?: number;
|
|
205
|
+
readonly gpuCompatible?: true;
|
|
206
|
+
}
|
|
207
|
+
export interface CustomBehavior {
|
|
208
|
+
readonly id?: string;
|
|
209
|
+
readonly type: "custom";
|
|
210
|
+
readonly execute: (particle: ParticleAccessor, dt: number) => void;
|
|
211
|
+
readonly gpuCompatible?: false;
|
|
212
|
+
}
|
|
213
|
+
export type ParticleBehavior = GravityBehavior | DirectionalForceBehavior | RadialForceBehavior | AttractionBehavior | RepulsionBehavior | DragBehavior | FrictionBehavior | TurbulenceBehavior | VelocityLimitsBehavior | BoundaryConstraintsBehavior | CustomBehavior;
|
|
214
|
+
export interface ParticleDataPool {
|
|
215
|
+
readonly capacity: number;
|
|
216
|
+
readonly count: number;
|
|
217
|
+
readonly buffer: Float32Array;
|
|
218
|
+
readonly stride: number;
|
|
219
|
+
spawn(data: ParticleSpawnData): number;
|
|
220
|
+
kill(index: number): void;
|
|
221
|
+
getAccessor(index: number): ParticleAccessor;
|
|
222
|
+
clear(): void;
|
|
223
|
+
getActiveIndices(): Int32Array;
|
|
224
|
+
}
|
|
225
|
+
export interface ParticleSystemMetrics {
|
|
226
|
+
readonly particleCount: number;
|
|
227
|
+
readonly maxParticles: number;
|
|
228
|
+
readonly emitterCount: number;
|
|
229
|
+
readonly behaviorCount: number;
|
|
230
|
+
readonly fps: number;
|
|
231
|
+
readonly stepTimeMs: number;
|
|
232
|
+
readonly renderTimeMs: number;
|
|
233
|
+
readonly memoryBytes: number;
|
|
234
|
+
readonly backend: ComputeBackendType | "canvas2d";
|
|
235
|
+
}
|
|
236
|
+
export type ParticleSystemState = "idle" | "running" | "paused" | "stopped" | "disposed";
|
|
237
|
+
export interface ParticleRenderOptions {
|
|
238
|
+
readonly strategy?: ParticleRenderStrategy;
|
|
239
|
+
readonly blendMode?: ParticleBlendMode;
|
|
240
|
+
readonly pointSizeMultiplier?: number;
|
|
241
|
+
readonly texture?: HTMLImageElement | HTMLCanvasElement | null;
|
|
242
|
+
readonly softParticles?: boolean;
|
|
243
|
+
}
|
|
244
|
+
export interface ParticleSystemConfig {
|
|
245
|
+
readonly id?: string;
|
|
246
|
+
readonly maxParticles?: number;
|
|
247
|
+
readonly emitters?: readonly (ParticleEmitterConfig | ParticleEmitter)[];
|
|
248
|
+
readonly behaviors?: readonly ParticleBehavior[];
|
|
249
|
+
readonly renderOptions?: ParticleRenderOptions;
|
|
250
|
+
readonly backend?: "auto" | ComputeBackendType;
|
|
251
|
+
readonly quality?: GraphicsQualityLevel;
|
|
252
|
+
readonly device?: ComputeDevice;
|
|
253
|
+
readonly canvas?: HTMLCanvasElement | null;
|
|
254
|
+
readonly fixedTimestep?: number;
|
|
255
|
+
readonly substeps?: number;
|
|
256
|
+
readonly seed?: number;
|
|
257
|
+
readonly autoStart?: boolean;
|
|
258
|
+
}
|
|
259
|
+
export interface ParticleSystem {
|
|
260
|
+
readonly id: string;
|
|
261
|
+
readonly state: ParticleSystemState;
|
|
262
|
+
readonly particleCount: number;
|
|
263
|
+
readonly maxParticles: number;
|
|
264
|
+
readonly metrics: ParticleSystemMetrics;
|
|
265
|
+
readonly backend: ComputeBackendType | "canvas2d";
|
|
266
|
+
start(): void;
|
|
267
|
+
pause(): void;
|
|
268
|
+
resume(): void;
|
|
269
|
+
stop(): void;
|
|
270
|
+
reset(): void;
|
|
271
|
+
clear(): void;
|
|
272
|
+
dispose(): void;
|
|
273
|
+
burst(count: number, emitterIndexOrId?: number | string): number;
|
|
274
|
+
update(deltaTime?: number): void;
|
|
275
|
+
render(canvas?: HTMLCanvasElement, context?: unknown): void;
|
|
276
|
+
addEmitter(emitter: ParticleEmitter | ParticleEmitterConfig): ParticleEmitter;
|
|
277
|
+
removeEmitter(emitterId: string): boolean;
|
|
278
|
+
addBehavior(behavior: ParticleBehavior): void;
|
|
279
|
+
removeBehavior(behaviorId: string): boolean;
|
|
280
|
+
getEmitters(): readonly ParticleEmitter[];
|
|
281
|
+
getBehaviors(): readonly ParticleBehavior[];
|
|
282
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { GraphicsCapabilities, Renderer, RendererBackend, RendererOptions, RenderFrameContext } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Headless Null Renderer for SSR, Node, and test environments.
|
|
4
|
+
*/
|
|
5
|
+
export declare class NullRenderer implements Renderer {
|
|
6
|
+
readonly backend: RendererBackend;
|
|
7
|
+
isInitialized: boolean;
|
|
8
|
+
canvas: HTMLCanvasElement | null;
|
|
9
|
+
private readonly lostListeners;
|
|
10
|
+
private readonly restoredListeners;
|
|
11
|
+
init(canvas: HTMLCanvasElement, _options?: RendererOptions): void;
|
|
12
|
+
render(_context: RenderFrameContext): void;
|
|
13
|
+
resize(_width: number, _height: number, _dpr: number): void;
|
|
14
|
+
clear(_color?: readonly [number, number, number, number]): void;
|
|
15
|
+
getCapabilities(): GraphicsCapabilities;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
onContextLost(listener: () => void): () => void;
|
|
18
|
+
onContextRestored(listener: () => void): () => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Solid, production-grade Canvas 2D Renderer with high-DPI scaling.
|
|
22
|
+
*/
|
|
23
|
+
export declare class Canvas2DRenderer implements Renderer {
|
|
24
|
+
readonly backend: RendererBackend;
|
|
25
|
+
isInitialized: boolean;
|
|
26
|
+
canvas: HTMLCanvasElement | null;
|
|
27
|
+
ctx: CanvasRenderingContext2D | null;
|
|
28
|
+
private options;
|
|
29
|
+
private readonly lostListeners;
|
|
30
|
+
private readonly restoredListeners;
|
|
31
|
+
init(canvas: HTMLCanvasElement, options?: RendererOptions): void;
|
|
32
|
+
render(_context: RenderFrameContext): void;
|
|
33
|
+
resize(width: number, height: number, dpr: number): void;
|
|
34
|
+
clear(color?: readonly [number, number, number, number]): void;
|
|
35
|
+
getCapabilities(): GraphicsCapabilities;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
onContextLost(listener: () => void): () => void;
|
|
38
|
+
onContextRestored(listener: () => void): () => void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Standard WebGL 1/2 Renderer with context loss and restore handling.
|
|
42
|
+
*/
|
|
43
|
+
export declare class WebGLRenderer implements Renderer {
|
|
44
|
+
backend: RendererBackend;
|
|
45
|
+
isInitialized: boolean;
|
|
46
|
+
canvas: HTMLCanvasElement | null;
|
|
47
|
+
gl: WebGLRenderingContext | WebGL2RenderingContext | null;
|
|
48
|
+
private options;
|
|
49
|
+
private readonly lostListeners;
|
|
50
|
+
private readonly restoredListeners;
|
|
51
|
+
private unbindContextLost;
|
|
52
|
+
private unbindContextRestored;
|
|
53
|
+
init(canvas: HTMLCanvasElement, options?: RendererOptions): void;
|
|
54
|
+
render(_context: RenderFrameContext): void;
|
|
55
|
+
resize(width: number, height: number, dpr: number): void;
|
|
56
|
+
clear(color?: readonly [number, number, number, number]): void;
|
|
57
|
+
getCapabilities(): GraphicsCapabilities;
|
|
58
|
+
destroy(): void;
|
|
59
|
+
onContextLost(listener: () => void): () => void;
|
|
60
|
+
onContextRestored(listener: () => void): () => void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates an appropriate renderer based on requested options with graceful fallback.
|
|
64
|
+
* If WebGL is requested but fails, falls back cleanly to Canvas2D (or NullRenderer in headless).
|
|
65
|
+
*/
|
|
66
|
+
export declare function createRenderer(options?: RendererOptions): Renderer;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ResourceManager } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a deterministic, idempotent Resource Manager for tracking
|
|
4
|
+
* graphics assets (buffers, textures, shaders, framebuffers, timers, event unbinds).
|
|
5
|
+
*/
|
|
6
|
+
export declare function createResourceManager(): ResourceManager;
|