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,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Model Intelligence & Optimization Types
|
|
3
|
+
*
|
|
4
|
+
* Strongly-typed contracts for model inspection, geometry optimization,
|
|
5
|
+
* LOD generation, material/texture analysis, hierarchy collapsing,
|
|
6
|
+
* skeletal analysis, and automatic collider generation.
|
|
7
|
+
*/
|
|
8
|
+
import type { Vector3, AABB3D, Transform3D, Collider3D } from "../physics/types.js";
|
|
9
|
+
import type { AnimationClipMetadata } from "../assets/types.js";
|
|
10
|
+
export interface Mesh3DData {
|
|
11
|
+
id?: string;
|
|
12
|
+
name?: string;
|
|
13
|
+
positions: Float32Array;
|
|
14
|
+
normals?: Float32Array;
|
|
15
|
+
uvs?: Float32Array;
|
|
16
|
+
indices?: Uint16Array | Uint32Array;
|
|
17
|
+
tangents?: Float32Array;
|
|
18
|
+
colors?: Float32Array;
|
|
19
|
+
materialId?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface MaterialData3D {
|
|
22
|
+
id: string;
|
|
23
|
+
name?: string;
|
|
24
|
+
color?: [number, number, number, number];
|
|
25
|
+
roughness?: number;
|
|
26
|
+
metalness?: number;
|
|
27
|
+
albedoTextureId?: string;
|
|
28
|
+
normalTextureId?: string;
|
|
29
|
+
roughnessTextureId?: string;
|
|
30
|
+
emissiveTextureId?: string;
|
|
31
|
+
alphaMode?: "OPAQUE" | "MASK" | "BLEND";
|
|
32
|
+
}
|
|
33
|
+
export interface TextureData3D {
|
|
34
|
+
id: string;
|
|
35
|
+
name?: string;
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
format?: "RGBA" | "RGB" | "GREYSCALE" | "COMPRESSED";
|
|
39
|
+
byteLength?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface ModelNode3D {
|
|
42
|
+
id: string;
|
|
43
|
+
name?: string;
|
|
44
|
+
transform: Transform3D;
|
|
45
|
+
meshIds?: string[];
|
|
46
|
+
children?: ModelNode3D[];
|
|
47
|
+
isAnimated?: boolean;
|
|
48
|
+
isPhysicsTarget?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface SkeletonBone3D {
|
|
51
|
+
id: string;
|
|
52
|
+
name: string;
|
|
53
|
+
parentIndex: number;
|
|
54
|
+
localTransform: Transform3D;
|
|
55
|
+
inverseBindMatrix?: Float32Array;
|
|
56
|
+
}
|
|
57
|
+
export interface SkeletonData3D {
|
|
58
|
+
bones: SkeletonBone3D[];
|
|
59
|
+
skinWeights?: Float32Array;
|
|
60
|
+
skinIndices?: Uint16Array | Uint32Array;
|
|
61
|
+
maxInfluencesPerVertex?: number;
|
|
62
|
+
animationClips?: AnimationClipMetadata[];
|
|
63
|
+
}
|
|
64
|
+
export interface Model3DData {
|
|
65
|
+
id: string;
|
|
66
|
+
name?: string;
|
|
67
|
+
rootNode: ModelNode3D;
|
|
68
|
+
meshes: Mesh3DData[];
|
|
69
|
+
materials?: MaterialData3D[];
|
|
70
|
+
textures?: TextureData3D[];
|
|
71
|
+
skeleton?: SkeletonData3D;
|
|
72
|
+
}
|
|
73
|
+
export interface TextureAnalysisMetrics {
|
|
74
|
+
totalTextureCount: number;
|
|
75
|
+
totalPixelCount: number;
|
|
76
|
+
estimatedVRAMBytesUncompressed: number;
|
|
77
|
+
estimatedVRAMBytesCompressed: number;
|
|
78
|
+
maxDimension: number;
|
|
79
|
+
nonPowerOfTwoCount: number;
|
|
80
|
+
}
|
|
81
|
+
export interface ModelAnalysisReport {
|
|
82
|
+
vertexCount: number;
|
|
83
|
+
triangleCount: number;
|
|
84
|
+
meshCount: number;
|
|
85
|
+
materialCount: number;
|
|
86
|
+
textureCount: number;
|
|
87
|
+
drawCallEstimate: number;
|
|
88
|
+
hierarchyDepth: number;
|
|
89
|
+
nodeCount: number;
|
|
90
|
+
bounds: {
|
|
91
|
+
aabb: AABB3D;
|
|
92
|
+
center: Vector3;
|
|
93
|
+
dimensions: Vector3;
|
|
94
|
+
boundingSphereRadius: number;
|
|
95
|
+
};
|
|
96
|
+
diagnostics: {
|
|
97
|
+
degenerateTriangles: number;
|
|
98
|
+
nonFiniteVertexCount: number;
|
|
99
|
+
duplicateVertexCount: number;
|
|
100
|
+
normalConsistency: number;
|
|
101
|
+
hasUVs: boolean;
|
|
102
|
+
hasTangents: boolean;
|
|
103
|
+
hasSkinning: boolean;
|
|
104
|
+
unindexedMeshCount: number;
|
|
105
|
+
unusedMaterials: string[];
|
|
106
|
+
emptyNodesCount: number;
|
|
107
|
+
};
|
|
108
|
+
textureMetrics: TextureAnalysisMetrics;
|
|
109
|
+
memoryEstimate: {
|
|
110
|
+
geometryBytes: number;
|
|
111
|
+
textureBytes: number;
|
|
112
|
+
totalVRAMBytes: number;
|
|
113
|
+
};
|
|
114
|
+
inspectedAt: number;
|
|
115
|
+
}
|
|
116
|
+
export interface GeometryOptimizationConfig {
|
|
117
|
+
/** Merge coincident vertices within distance tolerance. Default: true. */
|
|
118
|
+
deduplicateVertices?: boolean;
|
|
119
|
+
/** Spatial distance tolerance for vertex deduplication. Default: 1e-4. */
|
|
120
|
+
deduplicationTolerance?: number;
|
|
121
|
+
/** Remove zero-area or collinear triangles. Default: true. */
|
|
122
|
+
removeDegenerateTriangles?: boolean;
|
|
123
|
+
/** Recalculate smooth vertex normals from face area weighting. Default: false. */
|
|
124
|
+
recalculateNormals?: boolean;
|
|
125
|
+
/** Generate tangent vectors (and bitangent signs) from UVs. Default: false. */
|
|
126
|
+
generateTangents?: boolean;
|
|
127
|
+
/** Convert unindexed vertex streams into indexed triangle buffers. Default: true. */
|
|
128
|
+
generateIndices?: boolean;
|
|
129
|
+
/** Merge sub-meshes sharing identical materials. Default: false. */
|
|
130
|
+
mergeGeometries?: boolean;
|
|
131
|
+
/** Split large meshes exceeding vertex limits for 16-bit indices. Default: false. */
|
|
132
|
+
splitLargeMeshes?: boolean;
|
|
133
|
+
/** Maximum vertices threshold when splitting meshes. Default: 65535. */
|
|
134
|
+
maxVerticesPerMesh?: number;
|
|
135
|
+
}
|
|
136
|
+
export interface OptimizedGeometryResult {
|
|
137
|
+
mesh: Mesh3DData;
|
|
138
|
+
originalVertexCount: number;
|
|
139
|
+
optimizedVertexCount: number;
|
|
140
|
+
originalTriangleCount: number;
|
|
141
|
+
optimizedTriangleCount: number;
|
|
142
|
+
reductionPercentage: number;
|
|
143
|
+
indicesGenerated: boolean;
|
|
144
|
+
tangentsGenerated: boolean;
|
|
145
|
+
degeneratesRemoved: number;
|
|
146
|
+
}
|
|
147
|
+
export interface LODLevelConfig {
|
|
148
|
+
level: number;
|
|
149
|
+
targetTriangleRatio: number;
|
|
150
|
+
distanceThreshold: number;
|
|
151
|
+
maxError?: number;
|
|
152
|
+
}
|
|
153
|
+
export interface LODConfig {
|
|
154
|
+
levels?: LODLevelConfig[];
|
|
155
|
+
/** Preserve outer boundary edge vertices. Default: true. */
|
|
156
|
+
preserveBoundaries?: boolean;
|
|
157
|
+
/** Screen space error threshold in pixels. Default: 2.0. */
|
|
158
|
+
screenSpaceError?: number;
|
|
159
|
+
}
|
|
160
|
+
export interface LODLevelData {
|
|
161
|
+
level: number;
|
|
162
|
+
mesh: Mesh3DData;
|
|
163
|
+
vertexCount: number;
|
|
164
|
+
triangleCount: number;
|
|
165
|
+
reductionRatio: number;
|
|
166
|
+
distanceThreshold: number;
|
|
167
|
+
}
|
|
168
|
+
export interface ModelLODResult {
|
|
169
|
+
lods: LODLevelData[];
|
|
170
|
+
baseTriangleCount: number;
|
|
171
|
+
totalLevels: number;
|
|
172
|
+
}
|
|
173
|
+
export interface MaterialOptimizationConfig {
|
|
174
|
+
deduplicateMaterials?: boolean;
|
|
175
|
+
recommendTextureDownscaling?: boolean;
|
|
176
|
+
maxTextureDimension?: number;
|
|
177
|
+
}
|
|
178
|
+
export interface MaterialOptimizationReport {
|
|
179
|
+
originalMaterialCount: number;
|
|
180
|
+
deduplicatedMaterialCount: number;
|
|
181
|
+
duplicatePairs: Array<{
|
|
182
|
+
duplicateId: string;
|
|
183
|
+
canonicalId: string;
|
|
184
|
+
}>;
|
|
185
|
+
textureRecommendations: Array<{
|
|
186
|
+
textureId: string;
|
|
187
|
+
currentResolution: [number, number];
|
|
188
|
+
recommendedResolution: [number, number];
|
|
189
|
+
savedVRAMBytes: number;
|
|
190
|
+
reason: string;
|
|
191
|
+
}>;
|
|
192
|
+
totalVRAMSavingsBytes: number;
|
|
193
|
+
}
|
|
194
|
+
export interface HierarchyOptimizationConfig {
|
|
195
|
+
removeEmptyGroups?: boolean;
|
|
196
|
+
collapseRedundantNodes?: boolean;
|
|
197
|
+
bakeStaticTransforms?: boolean;
|
|
198
|
+
preserveAnimatedNodes?: boolean;
|
|
199
|
+
preservePhysicsNodes?: boolean;
|
|
200
|
+
}
|
|
201
|
+
export interface HierarchyOptimizationReport {
|
|
202
|
+
originalNodeCount: number;
|
|
203
|
+
optimizedNodeCount: number;
|
|
204
|
+
nodesRemoved: number;
|
|
205
|
+
transformsBaked: number;
|
|
206
|
+
maxDepthBefore: number;
|
|
207
|
+
maxDepthAfter: number;
|
|
208
|
+
}
|
|
209
|
+
export interface SkeletonOptimizationConfig {
|
|
210
|
+
maxInfluences?: number;
|
|
211
|
+
minWeightThreshold?: number;
|
|
212
|
+
}
|
|
213
|
+
export interface SkeletonAnalysisReport {
|
|
214
|
+
boneCount: number;
|
|
215
|
+
hierarchyDepth: number;
|
|
216
|
+
hasCycles: boolean;
|
|
217
|
+
maxInfluencesPerVertex: number;
|
|
218
|
+
unnormalizedWeightsCount: number;
|
|
219
|
+
prunedInfluencesCount: number;
|
|
220
|
+
animationClips: AnimationClipMetadata[];
|
|
221
|
+
}
|
|
222
|
+
export type RecommendedColliderType = "box" | "sphere" | "capsule" | "convex" | "compound";
|
|
223
|
+
export interface ColliderRecommendation {
|
|
224
|
+
type: RecommendedColliderType;
|
|
225
|
+
collider: Collider3D;
|
|
226
|
+
center?: Vector3;
|
|
227
|
+
halfExtents?: Vector3;
|
|
228
|
+
radius?: number;
|
|
229
|
+
height?: number;
|
|
230
|
+
vertices?: Float32Array;
|
|
231
|
+
confidence: number;
|
|
232
|
+
accuracyEstimate: number;
|
|
233
|
+
computationalCost: "minimal" | "low" | "medium" | "high";
|
|
234
|
+
reason: string;
|
|
235
|
+
}
|
|
236
|
+
export type DeviceProfileTier = "mobile" | "standard" | "high-end";
|
|
237
|
+
export interface OptimizationRecommendationItem {
|
|
238
|
+
category: "geometry" | "lod" | "materials" | "textures" | "hierarchy" | "physics";
|
|
239
|
+
severity: "info" | "warning" | "critical";
|
|
240
|
+
message: string;
|
|
241
|
+
expectedImpact: string;
|
|
242
|
+
action: string;
|
|
243
|
+
}
|
|
244
|
+
export interface OptimizationRecommendations {
|
|
245
|
+
overallHealthScore: number;
|
|
246
|
+
tier: DeviceProfileTier;
|
|
247
|
+
recommendations: OptimizationRecommendationItem[];
|
|
248
|
+
estimatedDrawCallsBefore: number;
|
|
249
|
+
estimatedDrawCallsAfter: number;
|
|
250
|
+
estimatedVRAMBytesBefore: number;
|
|
251
|
+
estimatedVRAMBytesAfter: number;
|
|
252
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Rigid Body Performance & Stacking Benchmarks
|
|
3
|
+
*
|
|
4
|
+
* Standardized execution benchmarks for multi-body simulations, vertical stacking,
|
|
5
|
+
* high-velocity CCD collision penetration tests, and broadphase throughput.
|
|
6
|
+
*/
|
|
7
|
+
export interface RigidBodyBenchmarkResult {
|
|
8
|
+
bodyCount: number;
|
|
9
|
+
steps: number;
|
|
10
|
+
totalTimeMs: number;
|
|
11
|
+
avgStepMs: number;
|
|
12
|
+
fpsEquivalent: number;
|
|
13
|
+
}
|
|
14
|
+
export interface StackingBenchmarkResult {
|
|
15
|
+
bodyCount: number;
|
|
16
|
+
height: number;
|
|
17
|
+
totalTimeMs: number;
|
|
18
|
+
avgStepMs: number;
|
|
19
|
+
stable: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface CCDBenchmarkResult {
|
|
22
|
+
impactSpeed: number;
|
|
23
|
+
tunneled: boolean;
|
|
24
|
+
timeOfImpact: number;
|
|
25
|
+
finalPositionZ: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Runs a performance benchmark simulating N dynamic rigid bodies falling under gravity.
|
|
29
|
+
*/
|
|
30
|
+
export declare function benchmarkRigidBodies(bodyCount?: number, steps?: number): RigidBodyBenchmarkResult;
|
|
31
|
+
/**
|
|
32
|
+
* Runs a vertical box stacking stability benchmark.
|
|
33
|
+
*/
|
|
34
|
+
export declare function benchmarkStacking(stacks?: number, height?: number, steps?: number): StackingBenchmarkResult;
|
|
35
|
+
/**
|
|
36
|
+
* Runs a high-velocity impact test to verify that Continuous Collision Detection
|
|
37
|
+
* prevents tunneling through a thin static barrier.
|
|
38
|
+
*/
|
|
39
|
+
export declare function benchmarkCCD(impactSpeed?: number): CCDBenchmarkResult;
|
|
40
|
+
export interface RopeBenchmarkResult {
|
|
41
|
+
segments: number;
|
|
42
|
+
steps: number;
|
|
43
|
+
totalTimeMs: number;
|
|
44
|
+
avgStepMs: number;
|
|
45
|
+
fpsEquivalent: number;
|
|
46
|
+
lengthMaintained: boolean;
|
|
47
|
+
}
|
|
48
|
+
export declare function benchmarkRope(segments?: number, steps?: number): RopeBenchmarkResult;
|
|
49
|
+
export interface ClothBenchmarkResult {
|
|
50
|
+
resolution: number;
|
|
51
|
+
particleCount: number;
|
|
52
|
+
constraintCount: number;
|
|
53
|
+
steps: number;
|
|
54
|
+
totalTimeMs: number;
|
|
55
|
+
avgStepMs: number;
|
|
56
|
+
fpsEquivalent: number;
|
|
57
|
+
}
|
|
58
|
+
export declare function benchmarkCloth(size?: number, steps?: number): ClothBenchmarkResult;
|
|
59
|
+
export interface SoftBodyBenchmarkResult {
|
|
60
|
+
bodyCount: number;
|
|
61
|
+
totalParticles: number;
|
|
62
|
+
steps: number;
|
|
63
|
+
totalTimeMs: number;
|
|
64
|
+
avgStepMs: number;
|
|
65
|
+
fpsEquivalent: number;
|
|
66
|
+
}
|
|
67
|
+
export declare function benchmarkSoftBodies(count?: number, steps?: number): SoftBodyBenchmarkResult;
|
|
68
|
+
export interface ArticulatedChainBenchmarkResult {
|
|
69
|
+
links: number;
|
|
70
|
+
steps: number;
|
|
71
|
+
totalTimeMs: number;
|
|
72
|
+
avgStepMs: number;
|
|
73
|
+
fpsEquivalent: number;
|
|
74
|
+
intact: boolean;
|
|
75
|
+
}
|
|
76
|
+
export declare function benchmarkArticulatedChain(links?: number, steps?: number): ArticulatedChainBenchmarkResult;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Rotational Inertia & Mass Properties
|
|
3
|
+
*
|
|
4
|
+
* Accurate analytical moment of inertia tensors for 3D primitive and compound
|
|
5
|
+
* colliders, parallel axis theorem (Huygens-Steiner), and world-space tensor rotations.
|
|
6
|
+
*/
|
|
7
|
+
import type { Matrix3, Vector3, Quaternion, Collider3D, ColliderShape3D } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Calculates geometric volume for 3D primitive collider shapes.
|
|
10
|
+
*/
|
|
11
|
+
export declare function computeShapeVolume(shape: ColliderShape3D): number;
|
|
12
|
+
/**
|
|
13
|
+
* Calculates mass of a shape given its volume and density in kg/m^3.
|
|
14
|
+
*/
|
|
15
|
+
export declare function computeShapeMassFromDensity(shape: ColliderShape3D, density?: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* Computes the principal diagonal inertia tensor for a solid uniform sphere.
|
|
18
|
+
* I = (2/5) * m * r^2
|
|
19
|
+
*/
|
|
20
|
+
export declare function computeSphereInertia(radius: number, mass: number): Matrix3;
|
|
21
|
+
/**
|
|
22
|
+
* Computes the principal diagonal inertia tensor for a solid uniform box.
|
|
23
|
+
* I_xx = (1/12) * m * (width_y^2 + width_z^2) = (1/3) * m * (hy^2 + hz^2)
|
|
24
|
+
*/
|
|
25
|
+
export declare function computeBoxInertia(halfExtents: Vector3, mass: number): Matrix3;
|
|
26
|
+
/**
|
|
27
|
+
* Computes the principal inertia tensor for a solid capsule composed of
|
|
28
|
+
* a cylinder of radius r and height h, capped by two hemispheres.
|
|
29
|
+
*/
|
|
30
|
+
export declare function computeCapsuleInertia(radius: number, height: number, axis?: "x" | "y" | "z", mass?: number): Matrix3;
|
|
31
|
+
/**
|
|
32
|
+
* Computes the local inertia tensor for an individual collider shape.
|
|
33
|
+
*/
|
|
34
|
+
export declare function computeColliderInertia(shape: ColliderShape3D, mass: number): Matrix3;
|
|
35
|
+
/**
|
|
36
|
+
* Shifts an inertia tensor about an offset vector using the Parallel Axis Theorem:
|
|
37
|
+
* I_offset = I_cm + m * (||d||^2 * I_3 - d * d^T)
|
|
38
|
+
*/
|
|
39
|
+
export declare function applyParallelAxisTheorem(inertia: Matrix3, offset: Vector3, mass: number): Matrix3;
|
|
40
|
+
/**
|
|
41
|
+
* Rotates a 3x3 inertia tensor by an orientation quaternion:
|
|
42
|
+
* I_rot = R * I * R^T
|
|
43
|
+
*/
|
|
44
|
+
export declare function rotateInertiaTensor(inertia: Matrix3, rotation: Quaternion): Matrix3;
|
|
45
|
+
/**
|
|
46
|
+
* Computes the world-space inverse inertia tensor from the body's local inverse tensor
|
|
47
|
+
* and its current world orientation:
|
|
48
|
+
* I_world^-1 = R * I_local^-1 * R^T
|
|
49
|
+
*/
|
|
50
|
+
export declare function computeWorldInvInertiaTensor(invInertiaLocal: Matrix3, rotation: Quaternion): Matrix3;
|
|
51
|
+
/**
|
|
52
|
+
* Computes compound mass, center of mass, and combined inertia tensor for a collection
|
|
53
|
+
* of sub-colliders with local offsets and orientations.
|
|
54
|
+
*/
|
|
55
|
+
export declare function computeCompoundMassProperties(colliders: readonly Collider3D[], defaultDensity?: number, explicitMass?: number): {
|
|
56
|
+
mass: number;
|
|
57
|
+
invMass: number;
|
|
58
|
+
centerOfMass: Vector3;
|
|
59
|
+
inertiaTensor: Matrix3;
|
|
60
|
+
invInertiaTensor: Matrix3;
|
|
61
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — Continuous Collision Detection (CCD)
|
|
3
|
+
*
|
|
4
|
+
* Swept-volume and ray-based time-of-impact (TOI) estimation for high-velocity
|
|
5
|
+
* rigid bodies, preventing tunneling through thin colliders and boundaries.
|
|
6
|
+
*/
|
|
7
|
+
import type { RigidBodyState, Transform3D, Collider3D, Vector3 } from "../types.js";
|
|
8
|
+
import type { SpatialQuery3D } from "../spatial/spatial-hash.js";
|
|
9
|
+
export interface CCDResult {
|
|
10
|
+
hasCollision: boolean;
|
|
11
|
+
timeOfImpact: number;
|
|
12
|
+
hitPoint?: Vector3;
|
|
13
|
+
hitNormal?: Vector3;
|
|
14
|
+
hitCollider?: Collider3D;
|
|
15
|
+
hitBodyId?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Evaluates whether continuous collision detection should be evaluated for a body.
|
|
19
|
+
* Activated if enableCCD is true or if displacement exceeds the body's conservative bounding radius.
|
|
20
|
+
*/
|
|
21
|
+
export declare function requiresCCD(body: RigidBodyState, displacement: Vector3, conservativeRadius?: number): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Performs continuous collision sweep for a dynamic rigid body between its
|
|
24
|
+
* start transform and proposed end transform.
|
|
25
|
+
*/
|
|
26
|
+
export declare function sweepBodyCCD(body: RigidBodyState, startTransform: Transform3D, endTransform: Transform3D, spatialQuery: SpatialQuery3D, getBodyTransform: (bodyId?: string) => Transform3D): CCDResult;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Narrowphase Collision & Raycasting
|
|
3
|
+
*
|
|
4
|
+
* Geometric intersection tests between 3D primitive colliders, contact manifold
|
|
5
|
+
* generation, and accurate 3D raycasting against shapes.
|
|
6
|
+
*/
|
|
7
|
+
import type { Collider3D, CollisionManifold3D, Transform3D, Ray3D, RayHit3D, RigidBodyState } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Generates a collision manifold between two colliders if an intersection exists.
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateCollisionManifold(bodyA: RigidBodyState | undefined, bodyB: RigidBodyState | undefined, colliderA: Collider3D, colliderB: Collider3D, bodyTransformA: Transform3D, bodyTransformB: Transform3D): CollisionManifold3D | null;
|
|
12
|
+
/**
|
|
13
|
+
* Raycasts against a 3D collider at a given world transform.
|
|
14
|
+
*/
|
|
15
|
+
export declare function raycastCollider(ray: Ray3D, collider: Collider3D, bodyTransform: Transform3D): RayHit3D | null;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Collision Shapes & Collider Factory
|
|
3
|
+
*
|
|
4
|
+
* Geometric representations for 3D collision bodies, layer filtering,
|
|
5
|
+
* and precise world-space AABB bounding calculations.
|
|
6
|
+
*/
|
|
7
|
+
import type { Collider3D, ColliderShape3D, SphereColliderShape, BoxColliderShape, CapsuleColliderShape, PlaneColliderShape, ConvexColliderShape, HeightfieldColliderShape, Transform3D, AABB3D, Vector3 } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Creates a 3D Sphere shape.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createSphereShape(radius: number): SphereColliderShape;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a 3D Box shape from half-extents.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createBoxShape(halfExtents: Vector3): BoxColliderShape;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a 3D Capsule shape.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createCapsuleShape(radius: number, height: number, axis?: "x" | "y" | "z"): CapsuleColliderShape;
|
|
20
|
+
/**
|
|
21
|
+
* Creates an infinite 3D Plane shape (plane equation: dot(normal, x) - constant = 0).
|
|
22
|
+
*/
|
|
23
|
+
export declare function createPlaneShape(normal: Vector3, constant?: number): PlaneColliderShape;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a Convex Polyhedron shape.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createConvexShape(vertices: Float32Array | readonly Vector3[], indices?: Uint32Array | Uint16Array): ConvexColliderShape;
|
|
28
|
+
/**
|
|
29
|
+
* Computes the world-space Axis-Aligned Bounding Box (AABB) for a 3D collider.
|
|
30
|
+
*/
|
|
31
|
+
export declare function computeColliderAABB(collider: Collider3D, bodyTransform?: Transform3D): AABB3D;
|
|
32
|
+
/**
|
|
33
|
+
* Tests whether two colliders are eligible to collide based on layers and masks.
|
|
34
|
+
*/
|
|
35
|
+
export declare function canCollide(a: Collider3D, b: Collider3D): boolean;
|
|
36
|
+
export declare const canCollideCollider3D: typeof canCollide;
|
|
37
|
+
export declare const canCollide3D: typeof canCollide;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a fully validated 3D Collider instance.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createCollider3D(shape: ColliderShape3D, options?: Partial<Collider3D>): Collider3D;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a Heightfield collider shape.
|
|
44
|
+
*/
|
|
45
|
+
export declare function createHeightfieldShape(width: number, length: number, cols: number, rows: number, heights: Float32Array, minHeight: number, maxHeight: number): HeightfieldColliderShape;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Advanced Constraint Factories
|
|
3
|
+
*
|
|
4
|
+
* Provides factory constructors for articulated joints: Hinge, Slider,
|
|
5
|
+
* Cone-Twist, Ball-and-Socket, Generic 6DOF, Fixed, and Damped Spring.
|
|
6
|
+
*/
|
|
7
|
+
import type { Constraint3D } from "../types.js";
|
|
8
|
+
import type { DistanceConstraintConfig, FixedConstraintConfig, BallAndSocketConstraintConfig, HingeConstraintConfig, SliderConstraintConfig, ConeTwistConstraintConfig, Generic6DOFConstraintConfig, SpringConstraintConfig } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Creates a Distance Constraint maintaining a distance between two bodies.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createDistanceConstraint3D(config: DistanceConstraintConfig): Constraint3D;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a Fixed Constraint completely locking relative position and orientation.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createFixedConstraint3D(config: FixedConstraintConfig): Constraint3D;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a Ball-and-Socket (point-to-point) joint allowing free 3DOF rotation.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createBallAndSocketConstraint3D(config: BallAndSocketConstraintConfig): Constraint3D;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a Hinge (revolute) constraint with angular limits and motor.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createHingeConstraint3D(config: HingeConstraintConfig): Constraint3D;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a Slider (prismatic) constraint with linear limits and motor.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createSliderConstraint3D(config: SliderConstraintConfig): Constraint3D;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a Cone-Twist constraint for universal joint / ragdoll limit behavior.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createConeTwistConstraint3D(config: ConeTwistConstraintConfig): Constraint3D;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a Generic 6DOF constraint with customizable linear and angular limits.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createGeneric6DOFConstraint3D(config: Generic6DOFConstraintConfig): Constraint3D;
|
|
37
|
+
/**
|
|
38
|
+
* Creates a Damped Spring constraint between two bodies.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createSpringConstraint3D(config: SpringConstraintConfig): Constraint3D;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Advanced Constraint Solver & Articulated Island Engine
|
|
3
|
+
*
|
|
4
|
+
* Implements high-stability iterative solving for Hinge, Slider, Cone-Twist,
|
|
5
|
+
* Ball-and-Socket, Generic 6DOF, Fixed, and Spring constraints with angular
|
|
6
|
+
* and linear limits, motors, breaking thresholds, and connected body island sleeping.
|
|
7
|
+
*/
|
|
8
|
+
import type { Constraint3D, RigidBodyState } from "../types.js";
|
|
9
|
+
import type { ConstraintSolver3D } from "../solver/types.js";
|
|
10
|
+
export type ConstraintBreakCallback = (constraintId: string, constraint: Constraint3D, impulse: number) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Articulated Constraint Graph Component (Island).
|
|
13
|
+
*/
|
|
14
|
+
export interface BodyIsland {
|
|
15
|
+
id: string;
|
|
16
|
+
bodyIds: Set<string>;
|
|
17
|
+
constraintIds: Set<string>;
|
|
18
|
+
totalKineticEnergy: number;
|
|
19
|
+
isSleeping: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Advanced iterative constraint solver supporting articulated multibody mechanisms.
|
|
23
|
+
*/
|
|
24
|
+
export declare class AdvancedConstraintSolver3D implements ConstraintSolver3D {
|
|
25
|
+
readonly name = "advanced-constraint-solver";
|
|
26
|
+
private onBreak?;
|
|
27
|
+
constructor(onBreak?: ConstraintBreakCallback);
|
|
28
|
+
setOnBreakCallback(cb: ConstraintBreakCallback): void;
|
|
29
|
+
solveConstraints(constraints: readonly Constraint3D[], bodies: ReadonlyMap<string, RigidBodyState>, iterations: number, dt: number): void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Computes connected body islands (articulated mechanisms) for group solving and sleeping.
|
|
33
|
+
*/
|
|
34
|
+
export declare function computeConstraintIslands(bodies: ReadonlyMap<string, RigidBodyState>, constraints: readonly Constraint3D[]): BodyIsland[];
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AF Motion — 3D Advanced Constraint Types
|
|
3
|
+
*
|
|
4
|
+
* Strongly-typed definitions for articulated rigid-body constraints:
|
|
5
|
+
* Hinge, Slider, Cone-Twist, Ball-and-Socket, Generic 6DOF, Fixed, and Spring.
|
|
6
|
+
*/
|
|
7
|
+
import type { Vector3, Transform3D } from "../types.js";
|
|
8
|
+
export interface BaseConstraintConfig {
|
|
9
|
+
id?: string;
|
|
10
|
+
bodyAId: string;
|
|
11
|
+
bodyBId?: string;
|
|
12
|
+
pivotA?: Vector3;
|
|
13
|
+
pivotB?: Vector3;
|
|
14
|
+
stiffness?: number;
|
|
15
|
+
damping?: number;
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
breakingImpulse?: number;
|
|
18
|
+
userData?: unknown;
|
|
19
|
+
}
|
|
20
|
+
export interface DistanceConstraintConfig extends BaseConstraintConfig {
|
|
21
|
+
minDistance?: number;
|
|
22
|
+
maxDistance?: number;
|
|
23
|
+
distance?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface FixedConstraintConfig extends BaseConstraintConfig {
|
|
26
|
+
}
|
|
27
|
+
export interface BallAndSocketConstraintConfig extends BaseConstraintConfig {
|
|
28
|
+
}
|
|
29
|
+
export interface HingeConstraintConfig extends BaseConstraintConfig {
|
|
30
|
+
/** Local rotation axis on body A. Default: { x: 0, y: 1, z: 0 }. */
|
|
31
|
+
axisA?: Vector3;
|
|
32
|
+
/** Local rotation axis on body B. Default: { x: 0, y: 1, z: 0 }. */
|
|
33
|
+
axisB?: Vector3;
|
|
34
|
+
/** Minimum allowable rotation angle in radians. */
|
|
35
|
+
lowerLimit?: number;
|
|
36
|
+
/** Maximum allowable rotation angle in radians. */
|
|
37
|
+
upperLimit?: number;
|
|
38
|
+
/** Whether the angular motor is active. */
|
|
39
|
+
motorEnabled?: boolean;
|
|
40
|
+
/** Target angular velocity in radians/sec. */
|
|
41
|
+
motorTargetVelocity?: number;
|
|
42
|
+
/** Maximum motor torque in N*m. */
|
|
43
|
+
motorMaxForce?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface SliderConstraintConfig extends BaseConstraintConfig {
|
|
46
|
+
/** Local sliding axis on body A. Default: { x: 1, y: 0, z: 0 }. */
|
|
47
|
+
axisA?: Vector3;
|
|
48
|
+
/** Local sliding axis on body B. Default: { x: 1, y: 0, z: 0 }. */
|
|
49
|
+
axisB?: Vector3;
|
|
50
|
+
/** Minimum allowable linear translation in meters. */
|
|
51
|
+
lowerLimit?: number;
|
|
52
|
+
/** Maximum allowable linear translation in meters. */
|
|
53
|
+
upperLimit?: number;
|
|
54
|
+
/** Whether the linear motor is active. */
|
|
55
|
+
motorEnabled?: boolean;
|
|
56
|
+
/** Target linear velocity in m/s. */
|
|
57
|
+
motorTargetVelocity?: number;
|
|
58
|
+
/** Maximum linear motor force in N. */
|
|
59
|
+
motorMaxForce?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface ConeTwistConstraintConfig extends BaseConstraintConfig {
|
|
62
|
+
/** Alignment axis on body A. Default: { x: 0, y: 1, z: 0 }. */
|
|
63
|
+
axisA?: Vector3;
|
|
64
|
+
/** Alignment axis on body B. Default: { x: 0, y: 1, z: 0 }. */
|
|
65
|
+
axisB?: Vector3;
|
|
66
|
+
/** Maximum cone deflection angle in radians. Default: Math.PI / 4. */
|
|
67
|
+
coneLimitAngle?: number;
|
|
68
|
+
/** Maximum twist angle in radians. Default: Math.PI / 6. */
|
|
69
|
+
twistLimitAngle?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface Generic6DOFConstraintConfig extends BaseConstraintConfig {
|
|
72
|
+
/** Coordinate frame on body A. */
|
|
73
|
+
frameA?: Transform3D;
|
|
74
|
+
/** Coordinate frame on body B. */
|
|
75
|
+
frameB?: Transform3D;
|
|
76
|
+
/** Linear motion limits [min, max] per axis (X, Y, Z). */
|
|
77
|
+
linearLimits?: {
|
|
78
|
+
min: Vector3;
|
|
79
|
+
max: Vector3;
|
|
80
|
+
};
|
|
81
|
+
/** Angular motion limits [min, max] per axis (X, Y, Z). */
|
|
82
|
+
angularLimits?: {
|
|
83
|
+
min: Vector3;
|
|
84
|
+
max: Vector3;
|
|
85
|
+
};
|
|
86
|
+
/** Linear motor settings per axis. */
|
|
87
|
+
linearMotor?: {
|
|
88
|
+
enabled?: boolean;
|
|
89
|
+
targetVelocity?: Vector3;
|
|
90
|
+
maxForce?: Vector3;
|
|
91
|
+
};
|
|
92
|
+
/** Angular motor settings per axis. */
|
|
93
|
+
angularMotor?: {
|
|
94
|
+
enabled?: boolean;
|
|
95
|
+
targetVelocity?: Vector3;
|
|
96
|
+
maxForce?: Vector3;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export interface SpringConstraintConfig extends BaseConstraintConfig {
|
|
100
|
+
/** Equilibrium rest length. Default: distance between initial pivots. */
|
|
101
|
+
restLength?: number;
|
|
102
|
+
/** Hookean spring stiffness coefficient. Default: 100. */
|
|
103
|
+
stiffness?: number;
|
|
104
|
+
/** Viscous damping coefficient. Default: 5. */
|
|
105
|
+
damping?: number;
|
|
106
|
+
}
|