@aura3d/engine 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +30 -14
  2. package/dist/aura3d-cli/asset-core-types.d.ts +18 -2
  3. package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
  4. package/dist/create-aura3d/index.js +1 -1
  5. package/dist/create-aura3d/showcase-spec-artifacts.d.ts +1 -0
  6. package/dist/create-aura3d/showcase-spec-artifacts.d.ts.map +1 -1
  7. package/dist/create-aura3d/showcase-spec-artifacts.js +1 -0
  8. package/dist/create-aura3d/showcase-spec-artifacts.js.map +1 -1
  9. package/dist/create-aura3d/showcase-spec-evidence.d.ts.map +1 -1
  10. package/dist/create-aura3d/showcase-spec-evidence.js +66 -0
  11. package/dist/create-aura3d/showcase-spec-evidence.js.map +1 -1
  12. package/dist/create-aura3d/showcase-spec-parser.d.ts.map +1 -1
  13. package/dist/create-aura3d/showcase-spec-parser.js +28 -0
  14. package/dist/create-aura3d/showcase-spec-parser.js.map +1 -1
  15. package/dist/create-aura3d/showcase-spec-platformer-artifacts.d.ts.map +1 -1
  16. package/dist/create-aura3d/showcase-spec-platformer-artifacts.js +2 -4
  17. package/dist/create-aura3d/showcase-spec-platformer-artifacts.js.map +1 -1
  18. package/dist/create-aura3d/showcase-spec-types.d.ts +15 -0
  19. package/dist/create-aura3d/showcase-spec-types.d.ts.map +1 -1
  20. package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts +1 -0
  21. package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
  22. package/dist/engine/agent-api/GameSceneGeometryBindings.js +1 -1
  23. package/dist/engine/agent-api/GameSceneGeometryBindings.js.map +1 -1
  24. package/dist/engine/agent-api/PublicGameGeometry.d.ts +117 -0
  25. package/dist/engine/agent-api/PublicGameGeometry.d.ts.map +1 -0
  26. package/dist/engine/agent-api/PublicGameGeometry.js +118 -0
  27. package/dist/engine/agent-api/PublicGameGeometry.js.map +1 -0
  28. package/dist/engine/agent-api/index.d.ts +119 -2
  29. package/dist/engine/agent-api/index.d.ts.map +1 -1
  30. package/dist/engine/agent-api/index.js +608 -56
  31. package/dist/engine/agent-api/index.js.map +1 -1
  32. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  33. package/package.json +29 -31
@@ -0,0 +1,118 @@
1
+ export function certifyPublicRacingGeometry(contract) {
2
+ const blockers = [];
3
+ if (!isCertifiedRacingTrack(contract.trackCertification))
4
+ blockers.push(`racing:track-certification:${contract.trackCertification}`);
5
+ if (contract.vehicleCertification !== "certified-racing-vehicle")
6
+ blockers.push(`racing:vehicle-certification:${contract.vehicleCertification}`);
7
+ if (contract.roadCenterline.length < 8)
8
+ blockers.push(`racing:too-few-road-centerline-points:${contract.roadCenterline.length}`);
9
+ if (!isPositive(contract.roadWidth))
10
+ blockers.push("racing:road-width-invalid");
11
+ if (contract.checkpoints.length < 4)
12
+ blockers.push(`racing:too-few-checkpoints:${contract.checkpoints.length}`);
13
+ if (!isFinitePoint2(contract.startPose, "z"))
14
+ blockers.push("racing:start-pose-invalid");
15
+ if (!isPositive(contract.lap.lapsToWin))
16
+ blockers.push("racing:laps-to-win-invalid");
17
+ if (contract.lap.finishProgress < 0.9 || contract.lap.finishProgress > 1)
18
+ blockers.push("racing:finish-progress-invalid");
19
+ if (contract.lap.minLapSeconds < 30)
20
+ blockers.push(`racing:min-lap-seconds-too-low:${contract.lap.minLapSeconds}`);
21
+ if (!hasPositiveBounds(contract.drivableBounds, "z"))
22
+ blockers.push("racing:drivable-bounds-invalid");
23
+ if (!hasPositiveBounds(contract.cameraBounds, "z"))
24
+ blockers.push("racing:camera-bounds-invalid");
25
+ if (!isPositive(contract.vehicleScale.width) || !isPositive(contract.vehicleScale.length))
26
+ blockers.push("racing:vehicle-scale-invalid");
27
+ if (isPositive(contract.roadWidth) && contract.vehicleScale.width > contract.roadWidth)
28
+ blockers.push("racing:vehicle-wider-than-road");
29
+ blockers.push(...validateRetainedProof("racing", contract.retainedProof));
30
+ return certification("racing", blockers, contract.trackCertification, contract.vehicleCertification);
31
+ }
32
+ export function certifyPublicPlatformerGeometry(contract) {
33
+ const blockers = [];
34
+ if (!isCertifiedPlatformerWorld(contract.worldCertification))
35
+ blockers.push(`platformer:world-certification:${contract.worldCertification}`);
36
+ if (contract.characterCertification !== "certified-platformer-character")
37
+ blockers.push(`platformer:character-certification:${contract.characterCertification}`);
38
+ if (contract.worldAssets.length === 0)
39
+ blockers.push("platformer:world-assets-missing");
40
+ const playableSurfaceCount = contract.surfaces.filter(isPlayableSurface).length;
41
+ if (playableSurfaceCount < 4)
42
+ blockers.push(`platformer:too-few-playable-surfaces:${playableSurfaceCount}`);
43
+ if (contract.hazards.length === 0)
44
+ blockers.push("platformer:missing-hazards");
45
+ if (contract.checkpoints.length === 0)
46
+ blockers.push("platformer:missing-checkpoints");
47
+ if (!isFinitePoint2(contract.spawn, "y"))
48
+ blockers.push("platformer:spawn-invalid");
49
+ if (!isFinitePoint2(contract.finish, "y") || contract.finish.x <= contract.spawn.x)
50
+ blockers.push("platformer:finish-invalid");
51
+ if (!hasPositiveBounds(contract.worldBounds, "y"))
52
+ blockers.push("platformer:world-bounds-invalid");
53
+ if (!hasPositiveBounds(contract.cameraBounds, "y"))
54
+ blockers.push("platformer:camera-bounds-invalid");
55
+ if (!isPositive(contract.characterScale.width) || !isPositive(contract.characterScale.height))
56
+ blockers.push("platformer:character-scale-invalid");
57
+ blockers.push(...validateRetainedProof("platformer", contract.retainedProof));
58
+ return certification("platformer", blockers, contract.worldCertification, contract.characterCertification);
59
+ }
60
+ function certification(category, blockers, primary, secondary) {
61
+ return {
62
+ kind: "aura-public-game-geometry-certification",
63
+ category,
64
+ publicReady: blockers.length === 0,
65
+ blockers,
66
+ certifications: { primary, secondary }
67
+ };
68
+ }
69
+ function isCertifiedRacingTrack(status) {
70
+ return status === "certified-racing-track" || status === "certified-generated-game-world";
71
+ }
72
+ function isCertifiedPlatformerWorld(status) {
73
+ return status === "certified-platformer-world" || status === "certified-generated-game-world";
74
+ }
75
+ function validateRetainedProof(category, proof) {
76
+ const blockers = [];
77
+ if (!proof.routePrimaryScreenshot.trim())
78
+ blockers.push(`${category}:retained-proof:screenshot-missing`);
79
+ if (!isSha256(proof.routePrimaryScreenshotSha256))
80
+ blockers.push(`${category}:retained-proof:screenshot-sha256-missing`);
81
+ if (!proof.geometryReport.trim())
82
+ blockers.push(`${category}:retained-proof:geometry-report-missing`);
83
+ if (!isSha256(proof.manifestHash))
84
+ blockers.push(`${category}:retained-proof:manifest-hash-missing`);
85
+ if (proof.visualReview !== "pass")
86
+ blockers.push(`${category}:retained-proof:visual-review-not-pass:${proof.visualReview}`);
87
+ if (proof.assetPairPass !== true)
88
+ blockers.push(`${category}:retained-proof:asset-pair-not-pass`);
89
+ for (const blocker of proof.blockers)
90
+ blockers.push(`${category}:retained-proof:blocker:${blocker}`);
91
+ return blockers;
92
+ }
93
+ function isPlayableSurface(surface) {
94
+ return surface.kind === "ground" || surface.kind === "platform" || surface.kind === "moving";
95
+ }
96
+ function hasPositiveBounds(bounds, secondAxis) {
97
+ const minSecond = secondAxis === "y" ? bounds.minY : bounds.minZ;
98
+ const maxSecond = secondAxis === "y" ? bounds.maxY : bounds.maxZ;
99
+ return Number.isFinite(bounds.minX) &&
100
+ Number.isFinite(bounds.maxX) &&
101
+ Number.isFinite(minSecond) &&
102
+ Number.isFinite(maxSecond) &&
103
+ bounds.maxX > bounds.minX &&
104
+ maxSecond !== undefined &&
105
+ minSecond !== undefined &&
106
+ maxSecond > minSecond;
107
+ }
108
+ function isFinitePoint2(point, secondAxis) {
109
+ const second = secondAxis === "y" ? point.y : point.z;
110
+ return Number.isFinite(point.x) && Number.isFinite(second);
111
+ }
112
+ function isPositive(value) {
113
+ return Number.isFinite(value) && value > 0;
114
+ }
115
+ function isSha256(value) {
116
+ return /^sha256-[a-f0-9]{64}$/.test(value);
117
+ }
118
+ //# sourceMappingURL=PublicGameGeometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicGameGeometry.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/PublicGameGeometry.ts"],"names":[],"mappings":"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"}
@@ -53,11 +53,14 @@ import { collectGameRuntimeEvidence as collectGameRuntimeEvidenceV105, type Game
53
53
  import { type AuraRuntimeNodeAnimationPoseBindingMetadata, type AuraRuntimeNodeAnimationBindingMetadata, type AuraRuntimeNodeBounds, type AuraRuntimeNodeEffectAttachment, type RuntimeNodeBoundsInput, type RuntimeNodeMorphTargetWeights } from "./RuntimeNodeHandle";
54
54
  import { createRuntimeNodeSpec } from "./GameSceneBridge";
55
55
  import { createFightingGameKit } from "./game-kits/fighting";
56
- import { createGameAssetBoundPlatformerLevel, createGameAssetBoundRacingRoute, createGameFallingBlocksKit, createGameLocomotionKit, createGamePlatformerKit, createGameRacingKit, type GameAssetBoundPlatformerLevel, type GameAssetBoundRacingRoute } from "./GameGenreKits";
57
- import { createGamePlatformerSceneBinding, createGamePlatformerPresentationCamera, createGameRacingPresentationCamera, createGameRacingSceneBinding, type GamePlatformerSceneBinding, type GameRacingSceneBinding } from "./GameSceneGeometryBindings";
56
+ import { createGameAssetBoundPlatformerLevel, createGameAssetBoundRacingRoute, createGameFallingBlocksKit, createGameLocomotionKit, createGamePlatformerKit, createGameRacingKit, type GameAssetBoundPlatformerLevel, type GameAssetBoundRacingRoute, type GameKitRect, type GameKitVec2, type GamePlatformerCheckpoint } from "./GameGenreKits";
57
+ import { createGamePlatformerSceneBinding, createGamePlatformerPresentationCamera, createGameRacingPresentationCamera, createGameRacingSceneBinding, type GamePlatformerPresentationCameraOptions, type GamePlatformerSceneBinding, type GameRacingPresentationCameraOptions, type GameScenePresentationCameraSpec, type GameRacingSceneBinding } from "./GameSceneGeometryBindings";
58
+ import { certifyPublicPlatformerGeometry, certifyPublicRacingGeometry, type PublicGameGeometryCertification, type PublicPlatformerGeometryContract, type PublicRacingGeometryContract } from "./PublicGameGeometry";
58
59
  export { GAME_FALLING_BLOCK_PIECES, createGameAssetBoundPlatformerLevel, createGameAssetBoundRacingRoute, createGameFallingBlocksKit, createGameLocomotionKit, createGamePlatformerKit, createGameRacingKit } from "./GameGenreKits";
59
60
  export { createGamePlatformerSceneBinding, createGamePlatformerPresentationCamera, createGameRacingPresentationCamera, createGameRacingSceneBinding } from "./GameSceneGeometryBindings";
61
+ export { certifyPublicPlatformerGeometry, certifyPublicRacingGeometry } from "./PublicGameGeometry";
60
62
  export type { GameAssetBoundPlatformerLevel, GameAssetBoundPlatformerLevelBinding, GameAssetBoundPlatformerLevelOptions, GameAssetBoundRacingRoute, GameAssetBoundRacingRouteBinding, GameAssetBoundRacingRouteOptions, GameFallingBlockAction, GameFallingBlockActivePiece, GameFallingBlockBoard, GameFallingBlockCell, GameFallingBlockPiece, GameFallingBlockRotation, GameFallingBlocksEvent, GameFallingBlocksKit, GameFallingBlocksOptions, GameFallingBlocksSnapshot, GameKitRect, GameKitVec2, GameLocomotionClipMap, GameLocomotionEventInput, GameLocomotionInput, GameLocomotionKit, GameLocomotionOptions, GameLocomotionSnapshot, GameLocomotionState, GamePlatformerCheckpoint, GamePlatformerCollectible, GamePlatformerEvent, GamePlatformerEventType, GamePlatformerHazard, GamePlatformerInput, GamePlatformerKit, GamePlatformerLevel, GamePlatformerMovingPlatform, GamePlatformerPlayerState, GamePlatformerSnapshot, GamePlatformerWorldAssetBinding, GameRacingCameraSnapshot, GameRacingEvent, GameRacingEventType, GameRacingInput, GameRacingKit, GameRacingOptions, GameRacingRoute, GameRacingSnapshot } from "./GameGenreKits";
63
+ export type { PublicGameAssetCertification, PublicGameBounds2, PublicGameGeometryCategory, PublicGameGeometryCertification, PublicGameGeometrySource, PublicGameRetainedProof, PublicPlatformerCheckpoint, PublicPlatformerGeometryContract, PublicPlatformerHazard, PublicPlatformerSurface, PublicRacingGeometryCheckpoint, PublicRacingGeometryContract, PublicRacingGeometryPoint } from "./PublicGameGeometry";
61
64
  export type { GamePlatformerSceneBinding, GamePlatformerSceneBindingOptions, GamePlatformerPresentationCameraOptions, GameRacingSceneBinding, GameRacingSceneBindingOptions, GameRacingPresentationCameraOptions, GameRacingScenePose, GameScenePresentationCameraSpec, GameSceneTransform } from "./GameSceneGeometryBindings";
62
65
  import { createPromptAnimationEpisodePlan, createPromptAnimationStoryBible, definePromptAnimationStoryboard } from "./PromptAnimationContract";
63
66
  import { applyShotPlaybackFrame, createShotPlaybackPlan, createShotTimeline, installShotPlayback, sampleShotPlaybackPlan } from "./ShotTimeline";
@@ -1565,6 +1568,49 @@ export interface AuraRacingPresentationTrackOptions {
1565
1568
  readonly curbColor?: AuraColor;
1566
1569
  readonly laneColor?: AuraColor;
1567
1570
  }
1571
+ export interface AuraRacingRoadMeshOptions extends Omit<AuraRacingPresentationTrackOptions, "guideVisibility"> {
1572
+ readonly includeTerrain?: boolean;
1573
+ readonly pitLaneColor?: AuraColor;
1574
+ readonly markingVisibility?: "full" | "subtle" | "none";
1575
+ readonly terrainPaddingScale?: number;
1576
+ }
1577
+ export interface AuraRacingCheckpointGateOptions {
1578
+ readonly sceneBinding: GameRacingSceneBinding;
1579
+ readonly route: GameAssetBoundRacingRoute;
1580
+ readonly progress: number;
1581
+ readonly index?: number;
1582
+ readonly mode?: "scene-bound" | "asset-bound";
1583
+ readonly roadY?: number;
1584
+ readonly roadWidth?: number;
1585
+ readonly gateColor?: AuraColor;
1586
+ readonly accentColor?: AuraColor;
1587
+ readonly lightColor?: AuraColor;
1588
+ }
1589
+ export interface AuraRacingStartFinishOptions {
1590
+ readonly sceneBinding: GameRacingSceneBinding;
1591
+ readonly route: GameAssetBoundRacingRoute;
1592
+ readonly mode?: "scene-bound" | "asset-bound";
1593
+ readonly roadY?: number;
1594
+ readonly roadWidth?: number;
1595
+ readonly checkerColorA?: AuraColor;
1596
+ readonly checkerColorB?: AuraColor;
1597
+ readonly gantryColor?: AuraColor;
1598
+ readonly lightColor?: AuraColor;
1599
+ }
1600
+ export interface AuraPublicRacingPresentationOptions extends Omit<AuraRacingRoadMeshOptions, "mode"> {
1601
+ readonly checkpointColor?: AuraColor;
1602
+ readonly checkpointAccentColor?: AuraColor;
1603
+ readonly startLightColor?: AuraColor;
1604
+ }
1605
+ export interface AuraRacingPresentationCertificationInput extends PublicRacingGeometryContract {
1606
+ readonly presentation?: {
1607
+ readonly roadMeshNodes?: number;
1608
+ readonly checkpointGateNodes?: number;
1609
+ readonly startFinishNodes?: number;
1610
+ readonly cameraMode?: "follow" | "perspective" | "overview";
1611
+ readonly debugMarkerCount?: number;
1612
+ };
1613
+ }
1568
1614
  export interface AuraPlatformerPresentationSurfaceOptions {
1569
1615
  readonly sceneBinding: GamePlatformerSceneBinding;
1570
1616
  readonly level: GameAssetBoundPlatformerLevel;
@@ -1575,8 +1621,63 @@ export interface AuraPlatformerPresentationSurfaceOptions {
1575
1621
  readonly hazardColor?: AuraColor;
1576
1622
  readonly collectibleColor?: AuraColor;
1577
1623
  readonly finishColor?: AuraColor;
1624
+ readonly includeBackdrop?: boolean;
1625
+ }
1626
+ export type AuraPlatformerPublicSurfaceMode = "scene-bound" | "asset-bound" | "game-level";
1627
+ export interface AuraPublicPlatformerPresentationOptions extends Omit<AuraPlatformerPresentationSurfaceOptions, "mode" | "guideVisibility"> {
1628
+ }
1629
+ export interface AuraPlatformerSurfaceMeshOptions {
1630
+ readonly sceneBinding: GamePlatformerSceneBinding;
1631
+ readonly surface: GameKitRect;
1632
+ readonly mode?: AuraPlatformerPublicSurfaceMode;
1633
+ readonly color?: AuraColor;
1634
+ readonly trimColor?: AuraColor;
1635
+ }
1636
+ export interface AuraPlatformerHazardOptions {
1637
+ readonly sceneBinding: GamePlatformerSceneBinding;
1638
+ readonly hazard: GameKitRect;
1639
+ readonly mode?: AuraPlatformerPublicSurfaceMode;
1640
+ readonly color?: AuraColor;
1641
+ }
1642
+ export interface AuraPlatformerCheckpointOptions {
1643
+ readonly sceneBinding: GamePlatformerSceneBinding;
1644
+ readonly checkpoint: GamePlatformerCheckpoint;
1645
+ readonly color?: AuraColor;
1646
+ }
1647
+ export interface AuraPlatformerFinishOptions {
1648
+ readonly sceneBinding: GamePlatformerSceneBinding;
1649
+ readonly finish: GameKitVec2 & {
1650
+ readonly id?: string;
1651
+ };
1652
+ readonly color?: AuraColor;
1653
+ }
1654
+ export interface AuraPlatformerPresentationCertificationInput extends PublicPlatformerGeometryContract {
1655
+ readonly presentation?: {
1656
+ readonly groundMeshNodes?: number;
1657
+ readonly platformMeshNodes?: number;
1658
+ readonly hazardNodes?: number;
1659
+ readonly checkpointNodes?: number;
1660
+ readonly finishNodes?: number;
1661
+ readonly cameraMode?: "follow" | "perspective" | "establishing";
1662
+ readonly debugMarkerCount?: number;
1663
+ readonly characterGrounded?: boolean;
1664
+ };
1578
1665
  }
1666
+ export declare function createGameRacingRoadMeshNodes(options: AuraRacingRoadMeshOptions): readonly AuraSceneNode[];
1667
+ export declare function createGameRacingCheckpointGateNodes(options: AuraRacingCheckpointGateOptions): readonly AuraSceneNode[];
1668
+ export declare function createGameRacingStartFinishNodes(options: AuraRacingStartFinishOptions): readonly AuraSceneNode[];
1669
+ export declare function createGamePublicRacingPresentationNodes(options: AuraPublicRacingPresentationOptions): readonly AuraSceneNode[];
1670
+ export declare function createGameRacingCameraRig(options: GameRacingPresentationCameraOptions): GameScenePresentationCameraSpec;
1671
+ export declare function certifyPublicRacingPresentation(input: AuraRacingPresentationCertificationInput): PublicGameGeometryCertification;
1579
1672
  export declare function createGameRacingPresentationTrackNodes(options: AuraRacingPresentationTrackOptions): readonly AuraSceneNode[];
1673
+ export declare function createGamePublicPlatformerPresentationNodes(options: AuraPublicPlatformerPresentationOptions): readonly AuraSceneNode[];
1674
+ export declare function createGamePlatformerGroundMeshNodes(options: AuraPlatformerSurfaceMeshOptions): readonly AuraSceneNode[];
1675
+ export declare function createGamePlatformerPlatformMeshNodes(options: AuraPlatformerSurfaceMeshOptions): readonly AuraSceneNode[];
1676
+ export declare function createGamePlatformerHazardNodes(options: AuraPlatformerHazardOptions): readonly AuraSceneNode[];
1677
+ export declare function createGamePlatformerCheckpointNodes(options: AuraPlatformerCheckpointOptions): readonly AuraSceneNode[];
1678
+ export declare function createGamePlatformerFinishNodes(options: AuraPlatformerFinishOptions): readonly AuraSceneNode[];
1679
+ export declare function createGamePlatformerCameraRig(options: GamePlatformerPresentationCameraOptions): GameScenePresentationCameraSpec;
1680
+ export declare function certifyPublicPlatformerPresentation(input: AuraPlatformerPresentationCertificationInput): PublicGameGeometryCertification;
1580
1681
  export declare function createGamePlatformerPresentationSurfaceNodes(options: AuraPlatformerPresentationSurfaceOptions): readonly AuraSceneNode[];
1581
1682
  export declare const game: {
1582
1683
  readonly createRuntime: typeof createAuraGameRuntime;
@@ -1600,11 +1701,27 @@ export declare const game: {
1600
1701
  readonly platformerSceneBinding: typeof createGamePlatformerSceneBinding;
1601
1702
  readonly platformerPresentationCamera: typeof createGamePlatformerPresentationCamera;
1602
1703
  readonly platformerPresentationSurfaces: typeof createGamePlatformerPresentationSurfaceNodes;
1704
+ readonly publicPlatformerPresentation: typeof createGamePublicPlatformerPresentationNodes;
1705
+ readonly platformerGroundMesh: typeof createGamePlatformerGroundMeshNodes;
1706
+ readonly platformerPlatformMesh: typeof createGamePlatformerPlatformMeshNodes;
1707
+ readonly platformerHazard: typeof createGamePlatformerHazardNodes;
1708
+ readonly platformerCheckpoint: typeof createGamePlatformerCheckpointNodes;
1709
+ readonly platformerFinish: typeof createGamePlatformerFinishNodes;
1710
+ readonly platformerCameraRig: typeof createGamePlatformerCameraRig;
1711
+ readonly certifyPlatformerGeometry: typeof certifyPublicPlatformerGeometry;
1712
+ readonly certifyPlatformerPresentation: typeof certifyPublicPlatformerPresentation;
1603
1713
  readonly platformer: typeof createGamePlatformerKit;
1604
1714
  readonly assetBoundRacingRoute: typeof createGameAssetBoundRacingRoute;
1605
1715
  readonly racingSceneBinding: typeof createGameRacingSceneBinding;
1606
1716
  readonly racingPresentationCamera: typeof createGameRacingPresentationCamera;
1717
+ readonly racingCameraRig: typeof createGameRacingCameraRig;
1718
+ readonly racingRoadMesh: typeof createGameRacingRoadMeshNodes;
1719
+ readonly racingCheckpointGate: typeof createGameRacingCheckpointGateNodes;
1720
+ readonly racingStartFinish: typeof createGameRacingStartFinishNodes;
1607
1721
  readonly racingPresentationTrack: typeof createGameRacingPresentationTrackNodes;
1722
+ readonly publicRacingPresentation: typeof createGamePublicRacingPresentationNodes;
1723
+ readonly certifyRacingGeometry: typeof certifyPublicRacingGeometry;
1724
+ readonly certifyRacingPresentation: typeof certifyPublicRacingPresentation;
1608
1725
  readonly racing: typeof createGameRacingKit;
1609
1726
  readonly fallingBlocks: typeof createGameFallingBlocksKit;
1610
1727
  readonly fallingBlockPieces: readonly ["I", "J", "L", "O", "S", "T", "Z"];