@volter/cyclotron 0.5.212 → 0.5.213
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/BUNDLED_NOTICES +375 -2995
- package/README.md +9 -5
- package/dist/.vite/manifest.json +529 -1764
- package/dist/assets/AudioViewer-B5pkIGXS.js +1 -0
- package/dist/assets/ImageViewer-BPVLEEQ2.js +1 -0
- package/dist/assets/JsonAssetDocument-DuVW9del.js +2 -0
- package/dist/assets/ProjectAuthoringBootstrap-CZJz4Svb.js +2 -0
- package/dist/assets/SourceAssetViewer-LwHBW53R.js +1 -0
- package/dist/assets/VideoViewer-Bfjjp4zH.js +1 -0
- package/dist/assets/{client-Dj2xr2fw.js → client-BLXKEWrR.js} +1 -1
- package/dist/assets/{index-Bc73pJIv.js → index-BKjLHm6K.js} +131 -131
- package/dist/assets/index-CJcVFJ-l.css +1 -0
- package/dist/assets/product-CaIfLQVS.js +1 -0
- package/dist/assets/story-capture-C3xmgE62.js +1 -0
- package/dist/assets/volter-sdk-DT0xmh2J.js +1407 -0
- package/dist/assets/volter-sdk-activation-events-B-WERmWU.js +1 -0
- package/dist/assets/volter-sdk-active-project-DvEsy8Q6.js +1 -0
- package/dist/assets/volter-sdk-adapter-editor-config-CQ5V6W-o.js +1 -0
- package/dist/assets/volter-sdk-animation-animation-clock-Cy7j_2qF.js +1 -0
- package/dist/assets/volter-sdk-animation-stage-transport-DoUDq6Gb.js +1 -0
- package/dist/assets/volter-sdk-api-base-Dr1bx5e0.js +1 -0
- package/dist/assets/volter-sdk-api-project-open-D4nPvIPU.js +1 -0
- package/dist/assets/volter-sdk-api-project-source-DoO7WBwQ.js +1 -0
- package/dist/assets/volter-sdk-api-settings-BEHgO5wf.js +1 -0
- package/dist/assets/volter-sdk-asset-capabilities-CGkNwaAe.js +1 -0
- package/dist/assets/volter-sdk-asset-document-write-policy-CzWM1HhK.js +1 -0
- package/dist/assets/volter-sdk-asset-editor-context-BkSK1vL1.js +1 -0
- package/dist/assets/volter-sdk-asset-thumbnails-zSmJgI_x.js +1 -0
- package/dist/assets/volter-sdk-asset-viewers-B-ICvlkR.js +1 -0
- package/dist/assets/volter-sdk-asset-workflow-project-content-C6Ow0R-F.js +1 -0
- package/dist/assets/volter-sdk-authoring-active-adapter-CKuWwxgH.js +1 -0
- package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-DTwFKBkS.js +1 -0
- package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-iRSbSHpV.js +1 -0
- package/dist/assets/volter-sdk-authoring-consumer-actions-DK9-B-wg.js +1 -0
- package/dist/assets/volter-sdk-authoring-design-time-mount-registry-BQnWcBVe.js +1 -0
- package/dist/assets/volter-sdk-authoring-design-time-roots-BKSmkD7_.js +1 -0
- package/dist/assets/volter-sdk-authoring-layered-pick-C-YvuxEG.js +1 -0
- package/dist/assets/volter-sdk-authoring-no-authoring-adapter-Cv9DD6G0.js +1 -0
- package/dist/assets/volter-sdk-authoring-panel-authoring-BLOrFs8L.js +1 -0
- package/dist/assets/volter-sdk-authoring-react-design-canvas-style-Dr9i31o5.js +1 -0
- package/dist/assets/{volter-sdk-authoring-react-story-board-aeiEUlbU.js → volter-sdk-authoring-react-story-board-BlCQQM-8.js} +1 -1
- package/dist/assets/volter-sdk-authoring-seam-evidence-CjetY_ZG.js +1 -0
- package/dist/assets/volter-sdk-authoring-selection-scope-BxmbC71H.js +1 -0
- package/dist/assets/volter-sdk-authoring-shell-document-ops-DDb8oGx9.js +1 -0
- package/dist/assets/volter-sdk-authoring-stage-root-B50LLhnJ.js +1 -0
- package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-BVV9fbcw.js +1 -0
- package/dist/assets/{volter-sdk-authoring-viewport-tool-context-DzsD6JQH.js → volter-sdk-authoring-viewport-tool-context-cQafPSkT.js} +1 -1
- package/dist/assets/volter-sdk-authoring-viewport-tool-owner-BppqL4f_.js +1 -0
- package/dist/assets/volter-sdk-authoring-world-session-state-BlpdiKod.js +1 -0
- package/dist/assets/volter-sdk-bitmap-label-BbtGPWgP.js +1 -0
- package/dist/assets/{volter-sdk-breakpoint-state-BPnDN_XU.js → volter-sdk-breakpoint-state-DCFuSvgm.js} +1 -1
- package/dist/assets/volter-sdk-bytes-codec-CrNeVT4e.js +1 -0
- package/dist/assets/volter-sdk-cancellation-reason-ByOH3mlF.js +1 -0
- package/dist/assets/volter-sdk-canvas-frames-BU8Rqr4J.js +1 -0
- package/dist/assets/volter-sdk-capture-size-D4cNT2XC.js +1 -0
- package/dist/assets/volter-sdk-chrome-registry-qHUiDauw.js +1 -0
- package/dist/assets/volter-sdk-command-result-text-2wzEhQ5t.js +1 -0
- package/dist/assets/volter-sdk-commands-C4RgHEOa.js +1 -0
- package/dist/assets/volter-sdk-component-board-registry-6gFZBkTP.js +1 -0
- package/dist/assets/volter-sdk-components-AssetEditorShell-CQVLedvW.js +1 -0
- package/dist/assets/volter-sdk-components-InspectorCanvasPreview-CN5ROhNT.js +1 -0
- package/dist/assets/volter-sdk-components-SurfaceStateOverlay-Cc9Ov1Ol.js +1 -0
- package/dist/assets/{volter-sdk-components-AssetEditorShell-BJL1am3b.js → volter-sdk-components-Toolbar-ZoV9Yq_A.js} +1 -1
- package/dist/assets/volter-sdk-components-TransientHint-BML2V3uu.js +1 -0
- package/dist/assets/volter-sdk-components-inspector-preview-section-BhDjhUyz.js +1 -0
- package/dist/assets/volter-sdk-components-use-after-paint-BVSO4qjV.js +1 -0
- package/dist/assets/volter-sdk-components-workspace-history-CThvGfsY.js +1 -0
- package/dist/assets/volter-sdk-content-entry-source-registry-CJLVq3tC.js +1 -0
- package/dist/assets/volter-sdk-contribution-surfaces-CeEDmriM.js +1 -0
- package/dist/assets/volter-sdk-contributions-x6j41XZp.js +1 -0
- package/dist/assets/volter-sdk-coverage-design-time-surfaces-D-tNGazo.js +1 -0
- package/dist/assets/volter-sdk-creation-site-registry-64gyrZPD.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-CXeWqAoG.js +1 -0
- package/dist/assets/volter-sdk-declared-tools-BAzHxyUW.js +1 -0
- package/dist/assets/{volter-sdk-document-areas-x47hqeuC.js → volter-sdk-document-areas-4DXjy0el.js} +1 -1
- package/dist/assets/volter-sdk-document-layer-B4VYMPZ9.js +1 -0
- package/dist/assets/volter-sdk-document-open-registry-BLDMaEoN.js +1 -0
- package/dist/assets/volter-sdk-document-play-extension-Dv3fyS6K.js +1 -0
- package/dist/assets/volter-sdk-document-probe-drBhAyza.js +1 -0
- package/dist/assets/volter-sdk-document-stage-sessions-CtI9anAf.js +1 -0
- package/dist/assets/volter-sdk-document-viewports-BO0N7VyN.js +1 -0
- package/dist/assets/volter-sdk-editor-commands-BJ9Otxzu.js +1 -0
- package/dist/assets/volter-sdk-editor-console-BaGgfWmH.js +1 -0
- package/dist/assets/volter-sdk-editor-document-probe-D0ZhaXHx.js +1 -0
- package/dist/assets/volter-sdk-editor-mode-B07FDozS.js +1 -0
- package/dist/assets/volter-sdk-editor-runtime-D00Du7hG.js +1 -0
- package/dist/assets/volter-sdk-editor-server-response-C6kOPAsW.js +1 -0
- package/dist/assets/volter-sdk-editor-session-attribution-CggpIFb4.js +1 -0
- package/dist/assets/volter-sdk-editor-view-DEMsxlaT.js +1 -0
- package/dist/assets/volter-sdk-environment-images-OQtFG1kA.js +1 -0
- package/dist/assets/volter-sdk-extension-script-DanTHcyo.js +1 -0
- package/dist/assets/volter-sdk-eyedropper-session-BfVXtjzc.js +1 -0
- package/dist/assets/volter-sdk-files-file-provider-CXL6oCMd.js +1 -0
- package/dist/assets/volter-sdk-files-project-files-SBAE37py.js +1 -0
- package/dist/assets/volter-sdk-framed-document-capture-7TnE8pn1.js +1 -0
- package/dist/assets/volter-sdk-framed-document-driver-C0K3-SRt.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-component-marks-BmJEMvvO.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-kind-icon-CrwdpecY.js +1 -0
- package/dist/assets/{volter-sdk-hierarchy-node-rows-CNCdvWZM.js → volter-sdk-hierarchy-node-rows-FcK7_ULi.js} +1 -1
- package/dist/assets/{volter-sdk-hierarchy-projection-BXet4MmW.js → volter-sdk-hierarchy-projection-CKzUOZUa.js} +1 -1
- package/dist/assets/volter-sdk-hierarchy-row-media-Czg40Ddi.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-row-model-BGzmcywF.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-rows-VAI0psTR.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-walk-CaVqG7v2.js +1 -0
- package/dist/assets/volter-sdk-history-history-delegate-DH_xBvdh.js +1 -0
- package/dist/assets/volter-sdk-history-history-service-D0n0Gl5Z.js +1 -0
- package/dist/assets/volter-sdk-history-persistence-coordinator-CcywAFdm.js +1 -0
- package/dist/assets/volter-sdk-history-resource-registry-DMTlnwGv.js +1 -0
- package/dist/assets/volter-sdk-history-snapshot-store-BVh1DtBp.js +1 -0
- package/dist/assets/volter-sdk-history-source-history-backend-ulJ-65tX.js +1 -0
- package/dist/assets/volter-sdk-hmr-registration-group-DvMQVKyO.js +1 -0
- package/dist/assets/volter-sdk-hmr-stable-react-context-BMVr5YVk.js +1 -0
- package/dist/assets/volter-sdk-host-D765Py2w.js +1 -0
- package/dist/assets/{volter-sdk-hotkeys-D8xO5kx0.js → volter-sdk-hotkeys-TesTKdAZ.js} +1 -1
- package/dist/assets/{volter-sdk-index-CTFkHN4C.js → volter-sdk-index-BABXozHr.js} +1 -1
- package/dist/assets/volter-sdk-inference-diagnostics-CsDbQ0M5.js +1 -0
- package/dist/assets/volter-sdk-inspection-document-subject-BMRD77Va.js +1 -0
- package/dist/assets/volter-sdk-inspection-group-icons-Wpz-YhkE.js +1 -0
- package/dist/assets/volter-sdk-inspection-model-BVOyStdc.js +1 -0
- package/dist/assets/volter-sdk-inspection-node-media-B8AL8_3F.js +1 -0
- package/dist/assets/volter-sdk-inspection-null-subject-d5bQZCbS.js +1 -0
- package/dist/assets/volter-sdk-inspector-property-grouping-BqrZkwo4.js +1 -0
- package/dist/assets/volter-sdk-inspector-section-registry-C6U15zvC.js +1 -0
- package/dist/assets/volter-sdk-js-heap-CcOnY0kf.js +1 -0
- package/dist/assets/{volter-sdk-keymap-presets-Vq8J3DoG.js → volter-sdk-keymap-presets-CSM-jVcZ.js} +1 -1
- package/dist/assets/volter-sdk-layout-arrangements-DHA3uifx.js +1 -0
- package/dist/assets/volter-sdk-layouts-4v9ECCn9.js +1 -0
- package/dist/assets/volter-sdk-light-explorer-model-CPuZjpiR.js +1 -0
- package/dist/assets/volter-sdk-live-seam-evidence-B_RyDaOp.js +1 -0
- package/dist/assets/volter-sdk-live-session-registry-C6gHroaH.js +1 -0
- package/dist/assets/{volter-sdk-manifest-project-DIThdJ0z.js → volter-sdk-manifest-project-CVVUDDuL.js} +1 -1
- package/dist/assets/volter-sdk-mount-css-scope-DaJoEo3v.js +1 -0
- package/dist/assets/volter-sdk-mount-failure-report-Cm92oiGJ.js +1 -0
- package/dist/assets/volter-sdk-native-selection-style-Bp4IBnA4.js +1 -0
- package/dist/assets/volter-sdk-photograph-notice-C6_gZGpW.js +1 -0
- package/dist/assets/volter-sdk-play-camera-flight-SwlYhOxW.js +1 -0
- package/dist/assets/volter-sdk-product-command-G8kKVJ-i.js +1 -0
- package/dist/assets/volter-sdk-progress-4GGmPvZn.js +1 -0
- package/dist/assets/volter-sdk-project-module-changes-DIrDIHeD.js +1 -0
- package/dist/assets/volter-sdk-project-module-url-BuAUWpus.js +1 -0
- package/dist/assets/volter-sdk-project-output-roots-BON7FOwQ.js +1 -0
- package/dist/assets/{volter-sdk-project-tab-census-Cos8L4lu.js → volter-sdk-project-tab-census-CO06UOh-.js} +1 -1
- package/dist/assets/volter-sdk-renderer-resource-counts-2kLiD8_S.js +1 -0
- package/dist/assets/volter-sdk-scoped-project-css-DA63CYkM.js +1 -0
- package/dist/assets/volter-sdk-selection-CSUq7EiY.js +1 -0
- package/dist/assets/volter-sdk-served-url-B_MypeId.js +1 -0
- package/dist/assets/volter-sdk-settings-settings-provider-CJuWxTB5.js +1 -0
- package/dist/assets/volter-sdk-settings-store-CEFKDj0h.js +1 -0
- package/dist/assets/volter-sdk-shell-store-Cl4sX9p4.js +1 -0
- package/dist/assets/volter-sdk-shell-store-door-DGjybg0J.js +1 -0
- package/dist/assets/volter-sdk-source-conflict-CV8Gk053.js +1 -0
- package/dist/assets/volter-sdk-stage-context-Cb0SaYhi.js +1 -0
- package/dist/assets/volter-sdk-stage-invalidation-VlBciYA0.js +1 -0
- package/dist/assets/volter-sdk-stage-store-registry-BpIy_QKq.js +1 -0
- package/dist/assets/{volter-sdk-startup-failure-CtJyTS-2.js → volter-sdk-startup-failure-C_8H4xuP.js} +1 -1
- package/dist/assets/{volter-sdk-stories-StoryPreviewMount-DjhZUmf-.js → volter-sdk-stories-StoryPreviewMount-BUX42gIR.js} +1 -1
- package/dist/assets/volter-sdk-stories-compose-project-stories-CkSd4Si5.js +1 -0
- package/dist/assets/volter-sdk-stories-scope-Dndn7MD8.js +1 -0
- package/dist/assets/volter-sdk-stories-story-declared-medium-Byi4XWeJ.js +1 -0
- package/dist/assets/volter-sdk-stories-story-dom-runtime-BS1VPvJ6.js +1 -0
- package/dist/assets/volter-sdk-stories-story-grouping-CpNh4cUf.js +1 -0
- package/dist/assets/{volter-sdk-story-document-openers-Df7Tcu2n.js → volter-sdk-story-document-openers-Ba5jQqay.js} +1 -1
- package/dist/assets/volter-sdk-surface-state-BhQ45ars.js +1 -0
- package/dist/assets/volter-sdk-tab-census-D0r0s37y.js +1 -0
- package/dist/assets/volter-sdk-tool-contribution-convention-JCXL6f2w.js +1 -0
- package/dist/assets/volter-sdk-transform-mode-request-Cwk_Kyty.js +1 -0
- package/dist/assets/volter-sdk-transient-hint-BOfFzAV8.js +1 -0
- package/dist/assets/{volter-sdk-types-BOfYN_tN.js → volter-sdk-types-CkT8l5N_.js} +1 -1
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-Cfza3eEl.js +1 -0
- package/dist/assets/{volter-sdk-ui-source-inspect-gofMOHNR.js → volter-sdk-ui-source-inspect-CEjmAN75.js} +1 -1
- package/dist/assets/{volter-sdk-ui-source-source-write-backend-BgVis1yZ.js → volter-sdk-ui-source-source-write-backend-0njgRdI6.js} +1 -1
- package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-CpsxorYU.js +1 -0
- package/dist/assets/volter-sdk-viewport-activation-timings-B3hRTu3A.js +1 -0
- package/dist/assets/volter-sdk-viewport-editor-controls-DDBd-VqO.js +1 -0
- package/dist/assets/volter-sdk-viewport-presentation-DRhiAH1h.js +1 -0
- package/dist/assets/volter-sdk-volter-contributions-nlGXjgJZ.js +1 -0
- package/dist/assets/volter-sdk-wait-until-CMvYQmO8.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-BJOyO8sO.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-eVtkxsIm.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-BoQP_5SK.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-CP0D74kc.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-De34FpYu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-_GjMjIGb.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-B7vN7BEd.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-E2J8cpyT.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-D6TERGKs.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CXR8n-CA.js +1 -0
- package/dist/assets/{volter-sdk-widgets-inspector-widgets-FilterEditor-DKkdim3n.js → volter-sdk-widgets-inspector-widgets-FilterEditor-CDvfWY4Q.js} +1 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BgpW8FW8.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DOOBkXjY.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-1NXWR_gB.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-Cd2-HwFn.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-C4HuSjFu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DUU2CCtc.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D5kwrOUQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CkFN2SUn.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-DynpKMMZ.js +1 -0
- package/dist/assets/{volter-sdk-widgets-palette-colors-Byzw9YHf.js → volter-sdk-widgets-palette-colors-DhL1I42R.js} +1 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-EUtcZi0Y.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-Bl_eaBej.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List--NE_1N5-.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BHXpv7qi.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdKa5HGV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-sFV7f1UP.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CIr5Cs49.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-C2YHfddf.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DCclspnW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-B0YxR4ea.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-B1_SLTuc.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CpHzPdt8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Dw4knhya.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-BAbRanmE.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Cj7jKNd4.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0DCI5bE.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-gT4Z6mtt.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-9EESAp9m.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Dk-5zqJ8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BQWJF-Pb.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DXvmafCK.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-yBrdWK2w.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CRhefpUL.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D5Kcb-ZC.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DiG6PEIe.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DhnSxXVK.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-e65mgyAk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVL0mN8g.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-C-_RU9Ov.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-CrJJXeKL.js +1 -0
- package/dist/assets/volter-sdk-worker-call-metrics-BTfmngck.js +1 -0
- package/dist/assets/{volter-sdk-workspace-core-utilities-BaAh2Ei8.js → volter-sdk-workspace-core-utilities-DtHGK9PF.js} +1 -1
- package/dist/assets/volter-sdk-workspace-document-ids-COULA7c6.js +1 -0
- package/dist/assets/volter-sdk-workspace-document-registry-6m5csVP7.js +1 -0
- package/dist/assets/volter-sdk-workspace-document-restore-M8ifJMou.js +1 -0
- package/dist/assets/{volter-sdk-workspace-host-commands-72RdJeW4.js → volter-sdk-workspace-host-commands-8Qzej--P.js} +1 -1
- package/dist/assets/volter-sdk-workspace-static-panels-Ckk7qUuS.js +1 -0
- package/dist/assets/volter-sdk-workspace-status-registry-BdU0dZAt.js +1 -0
- package/dist/assets/volter-sdk-workspace-utility-registry-BHxymD2l.js +1 -0
- package/dist/assets/volter-sdk-world-canvas-viewport-state-CHO8s9gE.js +1 -0
- package/dist/assets/volter-sdk-world-pan-state-C-9xgzAh.js +1 -0
- package/dist/assets/volter-sdk-write-pipe-CJHg7J4i.js +1 -0
- package/dist/assets/{volter-shared-fontawesome-B-OhfZs4.js → volter-shared-fontawesome-BEv9WEZj.js} +1 -1
- package/dist/assets/{volter-shared-jsx-dev-runtime-akPt_-OI.js → volter-shared-jsx-dev-runtime-domcKDU3.js} +1 -1
- package/dist/assets/{volter-shared-jsx-runtime-CKQtDN6l.js → volter-shared-jsx-runtime-Cu7pVW-1.js} +1 -1
- package/dist/assets/{volter-shared-react-STQK0zHl.js → volter-shared-react-BLHga76C.js} +1 -1
- package/dist/assets/volter-shared-react-dom-client-vi6WsWu2.js +1 -0
- package/dist/assets/{volter-shared-react-dom-2aA0eyQg.js → volter-shared-react-dom-kzJVGsQd.js} +1 -1
- package/dist/assets/volter-shared-three-BWbOWtM5.js +4220 -0
- package/dist/volter-shared-modules.json +225 -225
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-three.json +1 -1
- package/dist-node/cli.js +182 -127
- package/dist-node/create.js +18 -21
- package/package.json +16 -16
- package/src/index.ts +1 -2
- package/src/product-id.d.ts +4 -0
- package/starter/AGENTS.md +132 -157
- package/starter/game/levels/MainLevel.tsx +24 -0
- package/starter/game/prefabs/ground/Ground.tsx +24 -0
- package/starter/game/{levels → prefabs/ground}/ground.blend +0 -0
- package/starter/game/prefabs/ground/ground.glb +0 -0
- package/starter/game/prefabs/ground/ground.py +106 -0
- package/dist/assets/AudioViewer-EMpvKC-X.js +0 -1
- package/dist/assets/BVHLoader-CpdLvOHd.js +0 -1
- package/dist/assets/ColladaLoader-D1GMlAA9.js +0 -3
- package/dist/assets/EntityModelDocument-rYF-p8Fo.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-DfykWLLS.js +0 -1
- package/dist/assets/FBXLoader-DKZ0UD3F.js +0 -1
- package/dist/assets/ImageViewer-B0OqXrVU.js +0 -1
- package/dist/assets/InspectorObjectPreview-CwCqdv76.js +0 -1
- package/dist/assets/JsonAssetDocument-PzzxK-v9.js +0 -2
- package/dist/assets/LiveModuleDocument-Bq9J5nMx.js +0 -1
- package/dist/assets/LutAssetDocument-CyzgDCYJ.js +0 -1
- package/dist/assets/MTLLoader-BOaPmAvY.js +0 -2
- package/dist/assets/ModelAssetDocument-8he5iZqV.js +0 -1
- package/dist/assets/OBJLoader-BLg7dmPe.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-CLfEn5i-.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-WK1RY6Gg.css +0 -1
- package/dist/assets/OrbitControls-DxYDYiEc.js +0 -1
- package/dist/assets/PLYLoader-bAg6lYzP.js +0 -2
- package/dist/assets/ProjectAuthoringBootstrap-FVTj-Ag9.js +0 -2
- package/dist/assets/QuarksAssetDocument-DBJQXZ9u.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-CQLblkbI.js +0 -1
- package/dist/assets/STLLoader-C8jImL_t.js +0 -1
- package/dist/assets/ShaderAssetDocument-C3QolcYl.js +0 -12
- package/dist/assets/SourceAssetViewer-xB9kAyPa.js +0 -1
- package/dist/assets/StageHost-BZBLHaPe.css +0 -1
- package/dist/assets/StageHost-xYvmzMBo.js +0 -1231
- package/dist/assets/TDSLoader-DLNvOc6c.js +0 -1
- package/dist/assets/ToolObject3DPreview-4XgGyXTu.js +0 -2
- package/dist/assets/VideoViewer-BruuQyu3.js +0 -1
- package/dist/assets/ViewportShadingMenu-amXbnRtl.js +0 -1
- package/dist/assets/animation-mixers.service-Ce1JMqA2.js +0 -1
- package/dist/assets/animation-timeline.utility-CzsUvu3v.js +0 -1
- package/dist/assets/asset-preview-CtqauM13.js +0 -4
- package/dist/assets/basis_transcoder-VXdx5NbI.wasm +0 -0
- package/dist/assets/basis_transcoder-o4Hde_L7.js +0 -19
- package/dist/assets/blender-base64-Cxqc4R5f.js +0 -1
- package/dist/assets/blender-display-shaders-BPmHILFy.lut +0 -0
- package/dist/assets/blender-emscripten-engine-Bl_j9xEY.js +0 -26
- package/dist/assets/blender-motion-worker-CtT2cV3V.js +0 -1
- package/dist/assets/blender-node-editor.document-lj1qK5Vu.js +0 -1
- package/dist/assets/blender-outliner-model-BqLWEXta.js +0 -7359
- package/dist/assets/blender-properties-model-DD-2sMKx.js +0 -1
- package/dist/assets/blender-properties-tab-BmudfsC3.js +0 -3
- package/dist/assets/blender-runtime.document-IVSATTnk.js +0 -13
- package/dist/assets/blender-screenshot.service-BRgdtDQC.js +0 -1
- package/dist/assets/blender-timeline.document-8jLaNF31.js +0 -1
- package/dist/assets/blender-uv-editor.document-BVcA7mi2.js +0 -1
- package/dist/assets/blender-version.status-B43F7DzT.js +0 -2
- package/dist/assets/blender-wali-engine-xLHhm0KZ.js +0 -2
- package/dist/assets/blender.environment-CG-pC7sk.js +0 -1
- package/dist/assets/blender.keymap-pRN8nlCs.js +0 -1
- package/dist/assets/blender.page-BYbkmFDE.js +0 -3
- package/dist/assets/blender.status-CcKJxsZ1.js +0 -1
- package/dist/assets/blender.style-DuFonR-j.js +0 -1
- package/dist/assets/chat.page-DzuAKPGP.js +0 -1
- package/dist/assets/city-EkhAOo5s.exr +0 -0
- package/dist/assets/courtyard-DqlebbpC.exr +0 -0
- package/dist/assets/draco_decoder-C32yEggz.wasm +0 -0
- package/dist/assets/draco_decoder-Z1_iN-Ht.wasm +0 -0
- package/dist/assets/draco_decoder-fzg4nYZr.js +0 -34
- package/dist/assets/draco_wasm_wrapper-DxJM36Ib.js +0 -117
- package/dist/assets/draco_wasm_wrapper-fZCQGLGb.js +0 -116
- package/dist/assets/editor-presentation-activity-CqJH4G9t.js +0 -1
- package/dist/assets/forest-P_CQY3b_.exr +0 -0
- package/dist/assets/index-C4uuH2ZE.css +0 -1
- package/dist/assets/index-DlAJXb_f.js +0 -952
- package/dist/assets/interior-Bo_lba15.exr +0 -0
- package/dist/assets/linear-resolve-B-MA5O31.js +0 -400
- package/dist/assets/live-mixers-B-bwLZ7c.js +0 -1
- package/dist/assets/maya.style-C3zx8RC5.js +0 -1
- package/dist/assets/model-inspection-_SFE7cp7.js +0 -1
- package/dist/assets/model.layout-CX-vaeBh.js +0 -1
- package/dist/assets/models.finder-DcOx-jsM.js +0 -1
- package/dist/assets/mtoon0-BNRZGBf8.blend +0 -0
- package/dist/assets/mtoon1-EgrxQlCc.blend +0 -0
- package/dist/assets/mtoon1_outline-xuubMJ8J.blend +0 -0
- package/dist/assets/mtoon_auto_setup-BF1c8USg.blend +0 -0
- package/dist/assets/night-CvV4Gybt.exr +0 -0
- package/dist/assets/object3d-document-session-registry-DvgzaByQ.js +0 -2
- package/dist/assets/output-pass-Bw2FZb8e.js +0 -85
- package/dist/assets/play-mode-BGq1Hn-c.js +0 -1
- package/dist/assets/play.page-DB2UjY0o.js +0 -1
- package/dist/assets/product-OBHh_Udv.js +0 -1
- package/dist/assets/properties-bone-constraints.inspector-NWLfoFX1.js +0 -1
- package/dist/assets/properties-bone.inspector-DybmNdBB.js +0 -1
- package/dist/assets/properties-collection.inspector-Cg7Jq6yG.js +0 -1
- package/dist/assets/properties-constraints.inspector-DY--pvLo.js +0 -1
- package/dist/assets/properties-data.inspector-CP1lurLb.js +0 -1
- package/dist/assets/properties-material.inspector-K8Qx5wr9.js +0 -1
- package/dist/assets/properties-modifiers.inspector-DOfP-8mX.js +0 -1
- package/dist/assets/properties-object.inspector-sqx6qMyu.js +0 -1
- package/dist/assets/properties-output.inspector-CUYUEC6S.js +0 -1
- package/dist/assets/properties-particles.inspector-oAWorORY.js +0 -1
- package/dist/assets/properties-physics.inspector-CQIHdcOy.js +0 -1
- package/dist/assets/properties-render.inspector-XTzdYo4u.js +0 -1
- package/dist/assets/properties-scene.inspector-BytOBuw9.js +0 -1
- package/dist/assets/properties-texture.inspector-2WNelhHG.js +0 -1
- package/dist/assets/properties-view-layer.inspector-DVSdqosc.js +0 -1
- package/dist/assets/properties-world.inspector-CHHm7g3j.js +0 -1
- package/dist/assets/regions-BlV6hTFd.js +0 -1
- package/dist/assets/sculpt.layout-BkvEflSA.js +0 -1
- package/dist/assets/session-addons-KcG0o7Xc.js +0 -76898
- package/dist/assets/shading.layout-V9LTFaVk.js +0 -1
- package/dist/assets/sky-precompute-worker-CPGW9t_C.js +0 -1
- package/dist/assets/spark.module-Cc-ZVx5e.js +0 -12120
- package/dist/assets/stage-keyboard-Rgvt63qI.js +0 -1
- package/dist/assets/stage-overlay-set-juTRuk99.js +0 -1
- package/dist/assets/stage-presence-markers-XsGUs3S-.js +0 -1
- package/dist/assets/stage-transform-tools-BE7m4omf.js +0 -1
- package/dist/assets/standard-viewport-dressing-asIXnD-w.js +0 -24
- package/dist/assets/std-scene-level-DeiReu6Z.js +0 -13
- package/dist/assets/std-scene.document-DyWMJhxA.js +0 -1
- package/dist/assets/story-capture-Y8_YS5DC.js +0 -1
- package/dist/assets/studio-CysTBGIb.exr +0 -0
- package/dist/assets/substance.style-CoQdG-kF.js +0 -1
- package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
- package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
- package/dist/assets/texture.layout-DASpHVht.js +0 -1
- package/dist/assets/three.module-JoAAxMWl.js +0 -4220
- package/dist/assets/three.page-Dy2q5JEV.js +0 -2
- package/dist/assets/transparent_z_write-xIRcVb2w.blend +0 -0
- package/dist/assets/transport-strip-cKO8FHd1.js +0 -1
- package/dist/assets/uv-editing.layout-CF_54oSA.js +0 -1
- package/dist/assets/volter-sdk-D8o6TU4A.js +0 -1407
- package/dist/assets/volter-sdk-activation-events-DVerKSly.js +0 -1
- package/dist/assets/volter-sdk-active-project-f6toeBI4.js +0 -1
- package/dist/assets/volter-sdk-adapter-editor-config-DpARQ4TT.js +0 -1
- package/dist/assets/volter-sdk-animation-animation-clock-BGyYYQu-.js +0 -1
- package/dist/assets/volter-sdk-animation-stage-transport-DWmyow46.js +0 -1
- package/dist/assets/volter-sdk-api-base-jDs2XVgE.js +0 -1
- package/dist/assets/volter-sdk-api-project-open-BAXokZLA.js +0 -1
- package/dist/assets/volter-sdk-api-project-source-D6FB4SmO.js +0 -1
- package/dist/assets/volter-sdk-api-settings-DqgndoPA.js +0 -1
- package/dist/assets/volter-sdk-asset-capabilities-B5mXIYBM.js +0 -1
- package/dist/assets/volter-sdk-asset-document-write-policy-B5aaFAwu.js +0 -1
- package/dist/assets/volter-sdk-asset-editor-context-BjtZQVgF.js +0 -1
- package/dist/assets/volter-sdk-asset-thumbnails-CROlpqPM.js +0 -1
- package/dist/assets/volter-sdk-asset-viewers-BejvElAX.js +0 -1
- package/dist/assets/volter-sdk-asset-workflow-project-content-D8h-TsJc.js +0 -1
- package/dist/assets/volter-sdk-authoring-active-adapter-DhKlZbyW.js +0 -1
- package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-xlppcGid.js +0 -1
- package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-BfalSuB8.js +0 -1
- package/dist/assets/volter-sdk-authoring-consumer-actions-Hl6xkGAq.js +0 -1
- package/dist/assets/volter-sdk-authoring-design-time-mount-registry-2ZssbtYd.js +0 -1
- package/dist/assets/volter-sdk-authoring-design-time-roots-BNNZdEog.js +0 -1
- package/dist/assets/volter-sdk-authoring-layered-pick-AsUoH85M.js +0 -1
- package/dist/assets/volter-sdk-authoring-no-authoring-adapter-BX6sVPQX.js +0 -1
- package/dist/assets/volter-sdk-authoring-panel-authoring-BRs7fYSJ.js +0 -1
- package/dist/assets/volter-sdk-authoring-react-design-canvas-style-CdjO9_22.js +0 -1
- package/dist/assets/volter-sdk-authoring-seam-evidence-D58d2whR.js +0 -1
- package/dist/assets/volter-sdk-authoring-selection-scope-tqpilIPR.js +0 -1
- package/dist/assets/volter-sdk-authoring-shell-document-ops-ryosWWqt.js +0 -1
- package/dist/assets/volter-sdk-authoring-stage-root-yn7zP1QC.js +0 -1
- package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-DgAAtVo8.js +0 -1
- package/dist/assets/volter-sdk-authoring-viewport-tool-owner-zIgbNhiQ.js +0 -1
- package/dist/assets/volter-sdk-authoring-world-session-state-DriMgIzp.js +0 -1
- package/dist/assets/volter-sdk-bitmap-label-Cwzw278F.js +0 -1
- package/dist/assets/volter-sdk-bytes-codec-CF2kvi68.js +0 -1
- package/dist/assets/volter-sdk-cancellation-reason-BQvS02ja.js +0 -1
- package/dist/assets/volter-sdk-canvas-frames-BkjDC0or.js +0 -1
- package/dist/assets/volter-sdk-capture-size-B3uOMPdw.js +0 -1
- package/dist/assets/volter-sdk-chrome-registry-Be1q89aJ.js +0 -1
- package/dist/assets/volter-sdk-command-result-text-DdPWoVLu.js +0 -1
- package/dist/assets/volter-sdk-commands-DI54EGoY.js +0 -1
- package/dist/assets/volter-sdk-component-board-registry-DtTf1V5m.js +0 -1
- package/dist/assets/volter-sdk-components-InspectorCanvasPreview-DpOxql_B.js +0 -1
- package/dist/assets/volter-sdk-components-SurfaceStateOverlay-BQ9KTVV1.js +0 -1
- package/dist/assets/volter-sdk-components-Toolbar-C6bwDRIc.js +0 -1
- package/dist/assets/volter-sdk-components-TransientHint-D3wtJ4fg.js +0 -1
- package/dist/assets/volter-sdk-components-inspector-preview-section-D1DnmKLE.js +0 -1
- package/dist/assets/volter-sdk-components-use-after-paint-ZgZgfmSR.js +0 -1
- package/dist/assets/volter-sdk-components-workspace-history-IZTWOoYh.js +0 -1
- package/dist/assets/volter-sdk-content-entry-source-registry-DV4a0g9R.js +0 -1
- package/dist/assets/volter-sdk-contribution-surfaces-BAzaKN1S.js +0 -1
- package/dist/assets/volter-sdk-contributions-D2D_badr.js +0 -1
- package/dist/assets/volter-sdk-coverage-design-time-surfaces-WtyoVY81.js +0 -1
- package/dist/assets/volter-sdk-creation-site-registry-DEJua1VB.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-D1aEQUuP.js +0 -1
- package/dist/assets/volter-sdk-declared-tools-bEg2ZQju.js +0 -1
- package/dist/assets/volter-sdk-document-open-registry-BUdLp-BZ.js +0 -1
- package/dist/assets/volter-sdk-document-play-extension-BdtD2FcX.js +0 -1
- package/dist/assets/volter-sdk-document-probe-CvSMoXNj.js +0 -1
- package/dist/assets/volter-sdk-document-stage-sessions-BHE1T4gT.js +0 -1
- package/dist/assets/volter-sdk-document-viewports-BJqFXfe4.js +0 -1
- package/dist/assets/volter-sdk-editor-commands-CsYQVabs.js +0 -1
- package/dist/assets/volter-sdk-editor-console-lUTMRzeI.js +0 -1
- package/dist/assets/volter-sdk-editor-document-probe-BHRNXR9L.js +0 -1
- package/dist/assets/volter-sdk-editor-mode-BgYsrjin.js +0 -1
- package/dist/assets/volter-sdk-editor-runtime-CTy0Dw7-.js +0 -1
- package/dist/assets/volter-sdk-editor-server-response-oN9Horql.js +0 -1
- package/dist/assets/volter-sdk-editor-session-attribution-Ddoo0-e6.js +0 -1
- package/dist/assets/volter-sdk-editor-view-DEdcNl3N.js +0 -1
- package/dist/assets/volter-sdk-environment-images-Cbyno2vh.js +0 -1
- package/dist/assets/volter-sdk-extension-script-eemVEaFY.js +0 -1
- package/dist/assets/volter-sdk-eyedropper-session-BL5ceME-.js +0 -1
- package/dist/assets/volter-sdk-files-file-provider-D1vbGyMw.js +0 -1
- package/dist/assets/volter-sdk-files-project-files-CP9k503M.js +0 -1
- package/dist/assets/volter-sdk-framed-document-capture-DmqG4gUx.js +0 -1
- package/dist/assets/volter-sdk-framed-document-driver-B1ZAcb9l.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-component-marks-DjtdLv04.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-kind-icon-Dwlq9_xw.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-row-media-CnFXPw4O.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-row-model-TWxtUUdN.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-rows-3Hl6K3Br.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-walk-DvIomDWH.js +0 -1
- package/dist/assets/volter-sdk-history-history-delegate-RfZBUw9Y.js +0 -1
- package/dist/assets/volter-sdk-history-history-service-BWYajIYW.js +0 -1
- package/dist/assets/volter-sdk-history-persistence-coordinator-CmebAufQ.js +0 -1
- package/dist/assets/volter-sdk-history-resource-registry-CgjY-ErS.js +0 -1
- package/dist/assets/volter-sdk-history-snapshot-store-6Cq4Qau6.js +0 -1
- package/dist/assets/volter-sdk-history-source-history-backend-CilZiNDq.js +0 -1
- package/dist/assets/volter-sdk-hmr-registration-group-idNaexWq.js +0 -1
- package/dist/assets/volter-sdk-hmr-stable-react-context-DhY9rjD6.js +0 -1
- package/dist/assets/volter-sdk-host-BcQCyyIe.js +0 -1
- package/dist/assets/volter-sdk-inference-diagnostics-c4Aju1Jg.js +0 -1
- package/dist/assets/volter-sdk-inspection-document-subject-i64BmR5X.js +0 -1
- package/dist/assets/volter-sdk-inspection-group-icons-CWwhjZWt.js +0 -1
- package/dist/assets/volter-sdk-inspection-model-BgZVa_7l.js +0 -1
- package/dist/assets/volter-sdk-inspection-node-media-DNYb7ZDG.js +0 -1
- package/dist/assets/volter-sdk-inspection-null-subject-hK6kZbB7.js +0 -1
- package/dist/assets/volter-sdk-inspector-property-grouping-B-4_nVMm.js +0 -1
- package/dist/assets/volter-sdk-inspector-section-registry-DIYAa_rQ.js +0 -1
- package/dist/assets/volter-sdk-js-heap-DDws540T.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-DdjnA7ET.js +0 -1
- package/dist/assets/volter-sdk-layouts-DcV6NQNu.js +0 -1
- package/dist/assets/volter-sdk-light-explorer-model-BoB1GjBo.js +0 -1
- package/dist/assets/volter-sdk-live-seam-evidence-BOvNn-o8.js +0 -1
- package/dist/assets/volter-sdk-live-session-registry--ftGWuRg.js +0 -1
- package/dist/assets/volter-sdk-mount-css-scope-BTi-3JA9.js +0 -1
- package/dist/assets/volter-sdk-mount-failure-report-BeR90-6n.js +0 -1
- package/dist/assets/volter-sdk-native-selection-style-70aZpb0m.js +0 -1
- package/dist/assets/volter-sdk-photograph-notice-BwuWgyiq.js +0 -1
- package/dist/assets/volter-sdk-play-camera-flight-CaSiTxDt.js +0 -1
- package/dist/assets/volter-sdk-product-command-Cf1utO0M.js +0 -1
- package/dist/assets/volter-sdk-project-module-changes-CIKyvjy2.js +0 -1
- package/dist/assets/volter-sdk-project-module-url-XzZmS9zs.js +0 -1
- package/dist/assets/volter-sdk-project-output-roots-B4bC82T9.js +0 -1
- package/dist/assets/volter-sdk-renderer-resource-counts-S3R39qoy.js +0 -1
- package/dist/assets/volter-sdk-scoped-project-css-Ch7LkU2q.js +0 -1
- package/dist/assets/volter-sdk-selection-C2gFhPip.js +0 -1
- package/dist/assets/volter-sdk-served-url-DxzhEpXR.js +0 -1
- package/dist/assets/volter-sdk-serving-engine-BclAA7ZZ.js +0 -1
- package/dist/assets/volter-sdk-settings-settings-provider-DGc5Xf46.js +0 -1
- package/dist/assets/volter-sdk-settings-store-Bmx-a8f0.js +0 -1
- package/dist/assets/volter-sdk-shell-store-door-CQlHDF_i.js +0 -1
- package/dist/assets/volter-sdk-shell-store-e-X3-CSz.js +0 -1
- package/dist/assets/volter-sdk-source-conflict-DEn0Z5Vq.js +0 -1
- package/dist/assets/volter-sdk-stage-context-CwBngGWz.js +0 -1
- package/dist/assets/volter-sdk-stage-invalidation-Bt1Gs-b2.js +0 -1
- package/dist/assets/volter-sdk-stage-store-registry-DtSMhopZ.js +0 -1
- package/dist/assets/volter-sdk-stories-compose-project-stories-DfgTy2Bp.js +0 -1
- package/dist/assets/volter-sdk-stories-scope-4lTT6I0H.js +0 -1
- package/dist/assets/volter-sdk-stories-story-declared-medium-BFcKINTP.js +0 -1
- package/dist/assets/volter-sdk-stories-story-dom-runtime-wAz1MhyJ.js +0 -1
- package/dist/assets/volter-sdk-stories-story-grouping-bVoaiX0-.js +0 -1
- package/dist/assets/volter-sdk-surface-keyboard-5u3olsPL.js +0 -1
- package/dist/assets/volter-sdk-surface-state-F5vfsPyq.js +0 -1
- package/dist/assets/volter-sdk-tab-census-B95O0nem.js +0 -1
- package/dist/assets/volter-sdk-tool-contribution-convention-k_AVbxWl.js +0 -1
- package/dist/assets/volter-sdk-transform-mode-request-CKhq0gIu.js +0 -1
- package/dist/assets/volter-sdk-transient-hint-DQMQ2_Y5.js +0 -1
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-2Gw755Lw.js +0 -1
- package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-BsEnWjJv.js +0 -1
- package/dist/assets/volter-sdk-viewport-activation-timings--7x_AkVR.js +0 -1
- package/dist/assets/volter-sdk-viewport-editor-controls-CFuNGxo6.js +0 -1
- package/dist/assets/volter-sdk-viewport-presentation-CoiYwzFE.js +0 -1
- package/dist/assets/volter-sdk-volter-contributions-DjgbZdIJ.js +0 -1
- package/dist/assets/volter-sdk-wait-until-DRdtM37d.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-CPmOMXke.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-B4Q93899.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-C6dqUruc.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BOtjeU-M.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-C2FSk2KK.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-ClaWmFsj.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-DIoRDT6D.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-BcsoJNaT.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-p_xfUT04.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-RbGdt95N.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-DxdmydaC.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DZ0Z3l2P.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-Byy_M7hB.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-C9aPdbrZ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BJStispK.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C_5eRE_F.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-BA3S0eIV.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-DHHUQexs.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CjuUPrEv.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CQggdCbk.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-D38At0E9.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-ewRDByTO.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C8YqnN-5.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BjFrm6Mc.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-JZq1ce4h.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-Bf61fc1T.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-CwuVbaxj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-Ch2ujeLH.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-d2WNMADR.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DP0WkwNs.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-D1g1A89b.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-DAjALCvl.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-KBDCYHsT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-D2qUt6_z.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DLs3kN1L.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DshSsm_4.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-Ch-3iDys.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-pdAN4aF3.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BNFSUDwP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-5Hv-rso1.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-CtWC8t_L.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-h0iinIvj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-Cllx19nM.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CurGarFa.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-0YxAdd5O.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-ExQE8_SP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DGmxyx4E.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-DOfZnIVM.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-BpB2pf-w.js +0 -1
- package/dist/assets/volter-sdk-worker-call-metrics-Cdo-WjAp.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-ids-CWVlaP7n.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-registry-DoKaj8Fe.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-restore-BOPAH61D.js +0 -1
- package/dist/assets/volter-sdk-workspace-static-panels-DZr1Q4n1.js +0 -1
- package/dist/assets/volter-sdk-workspace-status-registry-pIvpW3QR.js +0 -1
- package/dist/assets/volter-sdk-workspace-utility-registry-BRzyLcLs.js +0 -1
- package/dist/assets/volter-sdk-world-canvas-viewport-state-DeMws4Bu.js +0 -1
- package/dist/assets/volter-sdk-world-pan-state-Dpul1S4k.js +0 -1
- package/dist/assets/volter-sdk-write-pipe-vbjHAGKf.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-B6uCXsbq.js +0 -1
- package/dist/assets/volter-shared-three-DSLGcAKx.js +0 -1
- package/dist/assets/worker-DeeaIXW_.js +0 -10
- package/src/contributions.d.ts +0 -9
- package/starter/game/client/index.tsx +0 -52
- package/starter/game/levels/GroundEnvironment.tsx +0 -15
- package/starter/game/levels/GroundLevel.tsx +0 -35
- package/starter/game/levels/ground.canvas.ts +0 -11
- package/starter/game/levels/ground.glb +0 -0
- package/starter/game/levels/ground.py +0 -142
package/dist-node/create.js
CHANGED
|
@@ -13937,7 +13937,7 @@ var package_default = {
|
|
|
13937
13937
|
name: "@volter/cyclotron",
|
|
13938
13938
|
publisher: "volter",
|
|
13939
13939
|
author: "Volter AI, Inc.",
|
|
13940
|
-
version: "0.5.
|
|
13940
|
+
version: "0.5.213",
|
|
13941
13941
|
publishConfig: {
|
|
13942
13942
|
access: "public"
|
|
13943
13943
|
},
|
|
@@ -14005,31 +14005,31 @@ var package_default = {
|
|
|
14005
14005
|
adapterRequired: true,
|
|
14006
14006
|
workbench: {
|
|
14007
14007
|
"darwin-arm64": {
|
|
14008
|
-
release: "cyclotron-
|
|
14009
|
-
tarballSha256: "
|
|
14008
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
|
|
14009
|
+
tarballSha256: "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
|
|
14010
14010
|
},
|
|
14011
14011
|
"linux-x64": {
|
|
14012
|
-
release: "cyclotron-
|
|
14013
|
-
tarballSha256: "
|
|
14012
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
|
|
14013
|
+
tarballSha256: "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
|
|
14014
14014
|
},
|
|
14015
14015
|
"win32-x64": {
|
|
14016
|
-
release: "cyclotron-
|
|
14017
|
-
tarballSha256: "
|
|
14016
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
|
|
14017
|
+
tarballSha256: "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
|
|
14018
14018
|
}
|
|
14019
14019
|
}
|
|
14020
14020
|
}
|
|
14021
14021
|
}
|
|
14022
14022
|
},
|
|
14023
14023
|
dependencies: {
|
|
14024
|
-
"@volter/editor-core": "0.5.
|
|
14025
|
-
"@volter/editor-blender": "0.1.
|
|
14026
|
-
"@volter/editor-threejs": "0.5.
|
|
14027
|
-
"@volter/chat": "0.5.
|
|
14028
|
-
"@volter/blender-engine": "0.1.
|
|
14029
|
-
"@volter/project": "0.5.
|
|
14030
|
-
"@volter/sdk": "0.5.
|
|
14031
|
-
"@volter/live": "0.5.
|
|
14032
|
-
"@volter/play": "0.5.
|
|
14024
|
+
"@volter/editor-core": "0.5.213",
|
|
14025
|
+
"@volter/editor-blender": "0.1.152",
|
|
14026
|
+
"@volter/editor-threejs": "0.5.213",
|
|
14027
|
+
"@volter/chat": "0.5.213",
|
|
14028
|
+
"@volter/blender-engine": "0.1.150",
|
|
14029
|
+
"@volter/project": "0.5.213",
|
|
14030
|
+
"@volter/sdk": "0.5.213",
|
|
14031
|
+
"@volter/live": "0.5.213",
|
|
14032
|
+
"@volter/play": "0.5.213",
|
|
14033
14033
|
three: "^0.186.1",
|
|
14034
14034
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
14035
14035
|
typescript: "5.9.3",
|
|
@@ -14126,8 +14126,8 @@ var EXAMPLES = {
|
|
|
14126
14126
|
dependencies: { i18next: "~26.7.2" },
|
|
14127
14127
|
/** The goal the game's `play` scripts name in place of the starter's. */
|
|
14128
14128
|
goal: "win",
|
|
14129
|
-
/** std's starter files the example has no use for: its
|
|
14130
|
-
removes: ["levels/
|
|
14129
|
+
/** std's starter files the example has no use for: its main level, its walking characters and its chat. */
|
|
14130
|
+
removes: ["levels/MainLevel.tsx", "client/characters.tsx", "client/chat.tsx"]
|
|
14131
14131
|
}
|
|
14132
14132
|
};
|
|
14133
14133
|
var isExample = (id) => Object.hasOwn(EXAMPLES, id);
|
|
@@ -14369,9 +14369,6 @@ export {
|
|
|
14369
14369
|
PLAY_PACKAGES,
|
|
14370
14370
|
UPGRADING,
|
|
14371
14371
|
declaration,
|
|
14372
|
-
productRoot2 as productRoot,
|
|
14373
|
-
productVersions,
|
|
14374
14372
|
refreshStarterGuidance,
|
|
14375
|
-
writeGame,
|
|
14376
14373
|
writeProject
|
|
14377
14374
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@volter/cyclotron",
|
|
3
3
|
"publisher": "volter",
|
|
4
4
|
"author": "Volter AI, Inc.",
|
|
5
|
-
"version": "0.5.
|
|
5
|
+
"version": "0.5.213",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
@@ -70,31 +70,31 @@
|
|
|
70
70
|
"adapterRequired": true,
|
|
71
71
|
"workbench": {
|
|
72
72
|
"darwin-arm64": {
|
|
73
|
-
"release": "cyclotron-
|
|
74
|
-
"tarballSha256": "
|
|
73
|
+
"release": "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
|
|
74
|
+
"tarballSha256": "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
|
|
75
75
|
},
|
|
76
76
|
"linux-x64": {
|
|
77
|
-
"release": "cyclotron-
|
|
78
|
-
"tarballSha256": "
|
|
77
|
+
"release": "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
|
|
78
|
+
"tarballSha256": "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
|
|
79
79
|
},
|
|
80
80
|
"win32-x64": {
|
|
81
|
-
"release": "cyclotron-
|
|
82
|
-
"tarballSha256": "
|
|
81
|
+
"release": "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
|
|
82
|
+
"tarballSha256": "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@volter/editor-core": "0.5.
|
|
90
|
-
"@volter/editor-blender": "0.1.
|
|
91
|
-
"@volter/editor-threejs": "0.5.
|
|
92
|
-
"@volter/chat": "0.5.
|
|
93
|
-
"@volter/blender-engine": "0.1.
|
|
94
|
-
"@volter/project": "0.5.
|
|
95
|
-
"@volter/sdk": "0.5.
|
|
96
|
-
"@volter/live": "0.5.
|
|
97
|
-
"@volter/play": "0.5.
|
|
89
|
+
"@volter/editor-core": "0.5.213",
|
|
90
|
+
"@volter/editor-blender": "0.1.152",
|
|
91
|
+
"@volter/editor-threejs": "0.5.213",
|
|
92
|
+
"@volter/chat": "0.5.213",
|
|
93
|
+
"@volter/blender-engine": "0.1.150",
|
|
94
|
+
"@volter/project": "0.5.213",
|
|
95
|
+
"@volter/sdk": "0.5.213",
|
|
96
|
+
"@volter/live": "0.5.213",
|
|
97
|
+
"@volter/play": "0.5.213",
|
|
98
98
|
"three": "^0.186.1",
|
|
99
99
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
100
100
|
"typescript": "5.9.3",
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { productId } from 'volter:product-id';
|
|
2
2
|
import { product } from '@volter/editor-core/frame';
|
|
3
3
|
|
|
4
4
|
export const { mountVolter } = product({
|
|
5
5
|
id: productId,
|
|
6
|
-
packages,
|
|
7
6
|
workspace: 'model',
|
|
8
7
|
logo: 'https://brand.volter.ai/logo/volter-cyclotron/svg',
|
|
9
8
|
});
|
package/starter/AGENTS.md
CHANGED
|
@@ -43,7 +43,7 @@ but keep it short between visible steps. Throughout:
|
|
|
43
43
|
Blender Text data-block named `Build Notes` with a fake user, and keep a
|
|
44
44
|
readable copy beside the work as Text objects in a `Notes` collection (a
|
|
45
45
|
text buffer alone is not visible in the viewport). Include the current step,
|
|
46
|
-
pending steps, and verified completed steps
|
|
46
|
+
pending steps, and verified completed steps; update both at
|
|
47
47
|
real milestones and preserve them across rebuilds and reopening. Keep notes
|
|
48
48
|
out of the intended shot, renders, exports and gameplay: disable the `Notes`
|
|
49
49
|
collection in renders (`collection.hide_render = True`), which keeps them on
|
|
@@ -71,26 +71,17 @@ Replace unused scaffold placeholders as the requested result calls for.
|
|
|
71
71
|
and the intended viewpoints; add cameras when the requested shot needs them.
|
|
72
72
|
A game-like reference can describe a static scene. Implement playable behavior
|
|
73
73
|
when the user asks for a working game or interactive mechanics.
|
|
74
|
-
- **A level and its
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
`
|
|
81
|
-
`bpy.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
It opens as its own document; open the level again to link it. Link
|
|
86
|
-
its collection (`bpy.data.libraries.load(path, link=True, relative=True)`:
|
|
87
|
-
relative, so the link still resolves when the project moves) and place it as
|
|
88
|
-
a collection instance. A piece that animates or that the level changes is
|
|
89
|
-
then made a library override (`bpy.ops.object.make_override_library()` with
|
|
90
|
-
the instance active), and actions and NLA tracks can still be added to it in
|
|
91
|
-
the level. Each placement is its own override; rename it as the game
|
|
92
|
-
expects. Edits to the piece's own file reach every level that links it the
|
|
93
|
-
next time the level opens.
|
|
74
|
+
- **A game's level and its models:** in a std game, models are made in
|
|
75
|
+
Blender, each its own prefab (`prefabs/<name>/<name>.blend`, which std's
|
|
76
|
+
export turns into its component), and the level lays them out in code
|
|
77
|
+
(`levels/<Name>Level.tsx`), blocked out there before its models are made.
|
|
78
|
+
- **A scene or film's set and its pieces:** outside a game, the set's `.blend`
|
|
79
|
+
is the environment, and each piece with its own identity is its own `.blend`
|
|
80
|
+
(`src/models/<piece>.blend`) linked in rather than copied: link its
|
|
81
|
+
collection (`bpy.data.libraries.load(path, link=True, relative=True)`) and
|
|
82
|
+
place it as a collection instance, made a library override
|
|
83
|
+
(`bpy.ops.object.make_override_library()`) where it animates. Edits to the
|
|
84
|
+
piece's own file reach every set that links it the next time it opens.
|
|
94
85
|
- **A character or an animation:** see Characters and Animation below; check
|
|
95
86
|
motion in the Timeline at representative and extreme poses.
|
|
96
87
|
- **An interactive model:** implement the requested interaction, preview it in
|
|
@@ -98,8 +89,6 @@ Replace unused scaffold placeholders as the requested result calls for.
|
|
|
98
89
|
- **A working game:** follow Working games below, including Play, the game's bot
|
|
99
90
|
goals and a few discrete manual checks. Match the mechanics and success/failure
|
|
100
91
|
behavior to the requested game.
|
|
101
|
-
- **A game's content:** its sounds, music, effects, tuning, items and words
|
|
102
|
-
are files with ids, as Content is data below says, never built in code.
|
|
103
92
|
- **UI or a HUD:** follow React UI below. A standalone screen needs its own
|
|
104
93
|
visual and interaction checks; UI attached to a game also needs checks in Play.
|
|
105
94
|
- **An edit or repair:** inspect the existing result first and change the
|
|
@@ -111,14 +100,15 @@ Replace unused scaffold placeholders as the requested result calls for.
|
|
|
111
100
|
|
|
112
101
|
Apply this section to models, scenes and the Blender parts of games.
|
|
113
102
|
|
|
114
|
-
-
|
|
103
|
+
- The `.blend` files are the saved documents (`src/models/`, or a game's
|
|
104
|
+
`prefabs/` and `levels/`), including full scenes.
|
|
115
105
|
`*.py` beside them record how they were authored. Editing a script alone does
|
|
116
106
|
not update the document.
|
|
117
|
-
- Look in the asset library before authoring an asset from nothing
|
|
118
|
-
`
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
107
|
+
- Look in the asset library before authoring an asset from nothing. It is part
|
|
108
|
+
of the editor's automation API (`editor.assetLibrary`), reached with
|
|
109
|
+
`cyclotron eval`. Results carry `tags` (such as `animated`), a license and
|
|
110
|
+
attribution. A download lands in the project's `public/asset-library/` with
|
|
111
|
+
the asset and its license recorded in the project; import it through Blender.
|
|
122
112
|
- Inspect the open scene with `get_scene_info` and `get_object_info` before
|
|
123
113
|
changing it. Rerunning a script that clears the scene replaces existing work;
|
|
124
114
|
update scripts to preserve user edits and the `References` and `Notes`
|
|
@@ -134,9 +124,8 @@ Apply this section to models, scenes and the Blender parts of games.
|
|
|
134
124
|
editing another document, wait and retry, then switch to another document
|
|
135
125
|
and back or run `editor.reloadPage()` in eval; do not build through `eval`
|
|
136
126
|
instead.
|
|
137
|
-
-
|
|
138
|
-
|
|
139
|
-
building many copies. Recalculate normals when needed.
|
|
127
|
+
- A closed mesh's faces point outward (normals recalculated where needed),
|
|
128
|
+
checked shaded before many copies of it are built.
|
|
140
129
|
- Verify object properties and inspect captures after meaningful changes.
|
|
141
130
|
The editor saves the open `.blend` when Code-OSS autosaves it
|
|
142
131
|
(`files.autoSave`), a moment after an edit, and not at all when the project
|
|
@@ -198,7 +187,7 @@ Apply this section to models, scenes and the Blender parts of games.
|
|
|
198
187
|
window minimized or covered; `status()`'s `presence.visibility` says so):
|
|
199
188
|
then a player's page is hidden, and one hidden since it loaded refuses
|
|
200
189
|
`capture --region play`. Never raise the editor's tab or window for it. See
|
|
201
|
-
the game in the videos std records of the bot's
|
|
190
|
+
the game in the videos std records of the bot's plays out of view
|
|
202
191
|
(`build/runs/<run>/video/`, each whole once its play ends), and read its HUD
|
|
203
192
|
with `editor.inspect()`'s `inspection.screen` (its `objects` are empty on a
|
|
204
193
|
page that has drawn no frame).
|
|
@@ -206,9 +195,13 @@ Apply this section to models, scenes and the Blender parts of games.
|
|
|
206
195
|
## Establish the visual match first
|
|
207
196
|
|
|
208
197
|
For new visual work, match the requested view before adding behavior. For a new
|
|
209
|
-
game, this first pass is the
|
|
210
|
-
|
|
211
|
-
|
|
198
|
+
game, this first pass is the level and its models, lit, with the game's things
|
|
199
|
+
in place and the React UI, composed as a static game screenshot: the game's
|
|
200
|
+
first frame in Play. The level's document draws it as the game does
|
|
201
|
+
(captured with `cyclotron capture --region document`)
|
|
202
|
+
while it is laid out. Movement, scoring, opponents and item behavior come
|
|
203
|
+
afterward. A behavior-only repair
|
|
204
|
+
preserves the established appearance.
|
|
212
205
|
|
|
213
206
|
- Match the reference's aspect ratio, crop, camera angle, perspective and object
|
|
214
207
|
scale, with the real 3D model and React components at comparable resolution;
|
|
@@ -241,120 +234,99 @@ behavior-only repair preserves the established appearance.
|
|
|
241
234
|
|
|
242
235
|
## Working games
|
|
243
236
|
|
|
244
|
-
A game here is a [std](node_modules/@volter-ai/std-dev/docs/
|
|
245
|
-
three.js, React Three Fiber, Rapier and Colyseus,
|
|
246
|
-
them, with std adding only what they lack. std's guide ships with the
|
|
247
|
-
`node_modules/@volter-ai/std-dev/docs
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
`autopilot/checks.ts` judges each goal's recorded play.
|
|
271
|
-
- `std.json` is the manifest.
|
|
272
|
-
- Rules belong to the room. A client sends what its player does (a message),
|
|
273
|
-
the room decides (its state), and every client draws the state. std 0.8 has
|
|
274
|
-
no items, pickups, health or scores of its own: write them with the
|
|
275
|
-
libraries, a react-three-rapier sensor's `onIntersectionEnter` or a distance
|
|
276
|
-
check, and a room message the room validates.
|
|
277
|
-
- Make the game's state readable on screen: a HUD element with `role="status"`
|
|
278
|
-
and an `aria-label` is what the person sees and what bots read.
|
|
279
|
-
- Give the bot a goal for each outcome worth checking: at least `win` and one
|
|
280
|
-
that loses on purpose (`lose`). A goal records what it sees with
|
|
281
|
-
`driver.intent(text, facts)`; its check in `autopilot/checks.ts` judges the
|
|
282
|
-
recording. Run one with `npx --no-install cyclotron play autoplay on <goal>`:
|
|
283
|
-
std's headless play of that goal, its own bot pages out of view (the player
|
|
284
|
-
on screen and the Game panel's goal stay as they are). Read how it ended in
|
|
285
|
-
`npx --no-install cyclotron play` (`autoplay.state`) and
|
|
286
|
-
`npx --no-install cyclotron play-log [--since <time>] [--kind <kind>]`, and
|
|
287
|
-
explain what happened from it before changing code. Change no file while it
|
|
288
|
-
plays: the dev server reloads its pages on a change, which cuts the goal short.
|
|
289
|
-
- Continuous play is the bot's, never yours by hand. Why: your inputs arrive
|
|
290
|
-
one tool call at a time, seconds apart, so a real-time game driven by hand
|
|
291
|
-
plays in stop-motion; it can't judge feel or timing, it rarely reaches an
|
|
292
|
-
ending, and an agent that falls into it can spend hours on one session. Use
|
|
293
|
-
a few discrete inputs for a manual check (`editor.document.key`, and a HUD
|
|
294
|
-
button pressed by its role and name,
|
|
295
|
-
`editor.document.click('role=button[name="Restart"]')`; at most about ten),
|
|
296
|
-
read the screen with `editor.inspect()` (`inspection.screen`) and the live
|
|
297
|
-
scene with it too, then hand back to the bot.
|
|
298
|
-
- Play on a level saves it (std exports it) and opens the game's own page for
|
|
299
|
-
each player. Pause, step and speed (the Game panel, or `play pause`,
|
|
300
|
-
`play resume`, `play step [count]`, `play speed <x>`) hold every player's
|
|
301
|
-
page; the room on the dev server keeps running, as Colyseus cannot pause a
|
|
302
|
-
room, so a timer the room runs goes on while the pages are paused.
|
|
303
|
-
- Say in Chat that the game is playable as soon as it is, then check its
|
|
304
|
-
endings with the bot's goals. Observe each terminal state, use the actual
|
|
305
|
-
Restart control and play again, and check that everything resets.
|
|
306
|
-
- Run `pnpm check` (std's own check: TypeScript, lint and the web build)
|
|
307
|
-
before calling the game done, and show what it says.
|
|
237
|
+
A game here is a [std](node_modules/@volter-ai/std-dev/docs/) game:
|
|
238
|
+
three.js, React Three Fiber, Rapier and Colyseus, written as their own docs
|
|
239
|
+
describe them, with std adding only what they lack. std's guide ships with the
|
|
240
|
+
game, in `node_modules/@volter-ai/std-dev/docs/`; its pages "Write a game",
|
|
241
|
+
"Levels" and "Bots" are where to start.
|
|
242
|
+
|
|
243
|
+
The project's standards:
|
|
244
|
+
|
|
245
|
+
- The room is the authority. A client sends what its player does, the room
|
|
246
|
+
decides in its state, and every client draws that state. std 0.8 has no
|
|
247
|
+
items, pickups, health or scores of its own: they are the game's own state.
|
|
248
|
+
- Models are made in Blender; the level is code that lays them out. What std's
|
|
249
|
+
export writes from a `.blend` is generated: change the `.blend`, never its
|
|
250
|
+
output. A body is authored where it belongs: in the model's `.blend` as
|
|
251
|
+
Blender has it, or by the level that places the model (std's guide,
|
|
252
|
+
"Levels").
|
|
253
|
+
- Content is data (Content is data, below).
|
|
254
|
+
- What a player reads is labelled, on screen and in the world: the person, a
|
|
255
|
+
screen reader and the bots read the same.
|
|
256
|
+
- Every game has its bot (`autopilot/`): a goal for each ending the game has,
|
|
257
|
+
and checks that judge each goal's recorded play.
|
|
258
|
+
- The visual pass comes before gameplay.
|
|
259
|
+
- `pnpm check` (TypeScript, lint and the web build) is clean before a game is
|
|
260
|
+
called done, and what its play was seen to get wrong (a goal, a check, a
|
|
261
|
+
press by hand) is fixed, not left for the person as a caveat. A fault in the
|
|
262
|
+
editor or std is shown with a focused reproduction and reported instead.
|
|
308
263
|
- The game is made and played on the web. Roblox and Unreal are targets the
|
|
309
|
-
person adds when they want to ship there
|
|
310
|
-
|
|
264
|
+
person adds when they want to ship there; never add one they didn't ask for.
|
|
265
|
+
|
|
266
|
+
Where things go:
|
|
267
|
+
|
|
268
|
+
- `levels/<Name>Level.tsx` is the level, a document of its own that draws it.
|
|
269
|
+
- `prefabs/<name>/<name>.blend` is a model, and beside it what std's export
|
|
270
|
+
writes from it (`<name>.glb`, `<Name>.tsx`). A model's file has no lights of
|
|
271
|
+
its own: the level that places it lights it.
|
|
272
|
+
- `server/index.ts` is the room, std's `StdRoom`, a Colyseus room;
|
|
273
|
+
`shared/state.ts` is its state schema.
|
|
274
|
+
- `client/` is the React Three Fiber app every player runs: `index.tsx` joins
|
|
275
|
+
the room and draws the level, `hud.tsx` is the HUD. std draws nothing on
|
|
276
|
+
the page itself: what a player sees when the game can't go on
|
|
277
|
+
(`failure.tsx`) and a P2P host's invite (`invite.tsx`) are the game's.
|
|
278
|
+
- `autopilot/index.ts` is the bot's goals, `autopilot/checks.ts` their checks.
|
|
279
|
+
- `std.json` is the manifest. A project without one becomes a std game with
|
|
280
|
+
`npx --no-install cyclotron add-play`.
|
|
281
|
+
|
|
282
|
+
Playing it in the editor:
|
|
283
|
+
|
|
284
|
+
- Play (the Game panel, under every document) saves the Blender file you
|
|
285
|
+
changed (std exports it) and opens the Game view, with the game's own page for
|
|
286
|
+
each player: one unless the project's `volter.play.players` says
|
|
287
|
+
more (which the Game panel's Players [-][+] and `play players <n>`
|
|
288
|
+
set). The viewed
|
|
289
|
+
player is yours, the others are bots playing the Game panel's goal. The Game
|
|
290
|
+
view's Scene is the level live; the level's own tab stays as authored.
|
|
291
|
+
Pause, step and speed (the Game panel, or
|
|
292
|
+
`play pause`, `play resume`, `play step [count]`, `play speed <x>`) hold every
|
|
293
|
+
player's page; the room keeps running, as Colyseus cannot pause a room.
|
|
294
|
+
- `npx --no-install cyclotron play autoplay on <goal>` is std's own play of a
|
|
295
|
+
goal, recorded and checked, as the Game panel's Autoplay is: on the viewed
|
|
296
|
+
player's page, which the person watches, while the Game view is on screen,
|
|
297
|
+
and out of view on std's headless device while it is not. It answers when
|
|
298
|
+
std says how the goal ended (`autoplay.state`, with how its checks ran:
|
|
299
|
+
`checks of <goal>: 2 passed (…)`, `…: 1 of 2 failed (…)` or `…: none ran
|
|
300
|
+
(…)`; the report's `checks.verdict` says which), so it
|
|
301
|
+
runs in the background. `autoplay.report` is its report. `npx --no-install cyclotron play-log` is what happened, the
|
|
302
|
+
room's own `console.log` among it (`server-output`).
|
|
303
|
+
- Continuous play is the bot's, never yours by hand: your inputs arrive one tool
|
|
304
|
+
call at a time, seconds apart, so a real-time game driven by hand plays in
|
|
305
|
+
stop-motion and rarely reaches an ending. A manual check is a few discrete
|
|
306
|
+
key presses and HUD clicks (`editor.document.key`, `editor.document.click`;
|
|
307
|
+
at most about ten), then hand back to the bot.
|
|
308
|
+
- Say in Chat that the game is playable as soon as it is, then check its
|
|
309
|
+
endings with its goals and by hand, restarting it as a player would.
|
|
311
310
|
- Capture the running game, HUD included (`capture --region play`), at the
|
|
312
|
-
start, during representative actions and after changes; its labelled
|
|
313
|
-
|
|
314
|
-
|
|
311
|
+
start, during representative actions and after changes; its labelled nodes
|
|
312
|
+
(`editor.inspect()`'s `inspection.screen`) say what the HUD reads. Report what
|
|
313
|
+
was actually observed.
|
|
315
314
|
|
|
316
315
|
## Animation
|
|
317
316
|
|
|
318
|
-
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
- Play clips as three.js does: three's `AnimationMixer`, or drei's `useAnimations`
|
|
326
|
-
in the game's client. What the mixer lacks, std adds in its style, in
|
|
327
|
-
`@volter-ai/std/animation/client`, each with a fiber hook beside it (std's guide,
|
|
328
|
-
`node_modules/@volter-ai/std-dev/docs/02bb-animation.md`):
|
|
329
|
-
- layers that go over each other by weight, as Blender's NLA does (an aim over a
|
|
330
|
-
run, an action keyed on the upper body alone): `AnimationLayers`,
|
|
331
|
-
`useAnimationLayers(root, { clips })`, then `layers.clipAction(clip, root?,
|
|
332
|
-
blendMode?, 'Upper')`;
|
|
333
|
-
- a character's NLA tracks as the `.blend` authored them: `AnimationTracks`,
|
|
334
|
-
`useAnimationTracks(layers, node, frame, { clips })`;
|
|
335
|
-
- run-time aims: mark a pose bone's Damped Track with the custom property
|
|
336
|
-
`std.runtime`, then `useAimConstraints(root, { layers, find })` and set
|
|
337
|
-
`aims.get('head', 'Look').influence` in `useFrame`.
|
|
338
|
-
- Make another of a character with three's `SkeletonUtils.clone`
|
|
339
|
-
(`three/addons/utils/SkeletonUtils.js`); its clips come with it.
|
|
340
|
-
- Give every action that may play a fake user (`action.use_fake_user = True`):
|
|
341
|
-
Blender drops an action nothing uses when the file saves, so an unassigned
|
|
342
|
-
clip library vanishes on the next save.
|
|
317
|
+
- Motion is authored in Blender: an armature and its actions, in the
|
|
318
|
+
character's `.blend`, each a clip of its component. Clips play with three.js's
|
|
319
|
+
own animation system; what it lacks that Blender has (layers by weight, NLA
|
|
320
|
+
tracks, run-time aims), std adds in three's style (std's guide,
|
|
321
|
+
"Animation").
|
|
322
|
+
- Every action that may play has a fake user: Blender drops an action nothing
|
|
323
|
+
uses when the file saves.
|
|
343
324
|
|
|
344
325
|
## Cutscenes and films
|
|
345
326
|
|
|
346
|
-
- A moment inside the game (a launch, a set piece, an
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
Play it with std's `TimelineUtils` (`@volter-ai/std/animation/client`; std's
|
|
350
|
-
guide, `02bb-animation.md`, "A level's timeline"):
|
|
351
|
-
- `TimelineUtils.timelineOf(level)` is the level's timeline;
|
|
352
|
-
- `TimelineUtils.frameAt(timeline, seconds)` is the frame;
|
|
353
|
-
- `TimelineUtils.cameraAt(level, frame)` with `lookThrough(camera, shot)` gives
|
|
354
|
-
its camera cuts;
|
|
355
|
-
- `useTimelineSampler(level, animations)` (or `new TimelineUtils.TimelineSampler(level, animations, timeline)`),
|
|
356
|
-
then `setFrame(frame, { collection, at, anchor })`, poses the level's own
|
|
357
|
-
animation: only that collection, placed at a game object when `at` is given.
|
|
327
|
+
- A moment inside the game (a launch, a set piece, an emote) is authored on the
|
|
328
|
+
Timeline, in a collection of its own, and plays live in the game (std's
|
|
329
|
+
guide, "Animation", "A level's timeline").
|
|
358
330
|
- A film as a file (an intro, a trailer) is rendered, not captured:
|
|
359
331
|
`npx --no-install cyclotron render-movie --from <marker> --to <marker> --out <file>.webm`
|
|
360
332
|
renders the span through Blender's Render Animation on the three.js engine,
|
|
@@ -430,23 +402,22 @@ A character is two jobs, in this order: how it looks, then how it moves.
|
|
|
430
402
|
## Content is data
|
|
431
403
|
|
|
432
404
|
A game's content is data, as a game studio keeps it. Each asset is authored
|
|
433
|
-
offline, saved as a file, and used by its path: a
|
|
434
|
-
|
|
435
|
-
|
|
405
|
+
offline, saved as a file, and used by its path: a model is a `.blend`
|
|
406
|
+
(std's export carries it to the game), a texture an image, a word a string the
|
|
407
|
+
HUD shows. The code never builds at run time a mesh,
|
|
436
408
|
a texture or a sound a file could hold. Run-time construction stays for what is
|
|
437
409
|
truly procedural: a trail's points, a destructible's fragments, a score's value.
|
|
438
410
|
|
|
439
|
-
-
|
|
440
|
-
|
|
411
|
+
- Models are `prefabs/<name>/<name>.blend`; the level that lays them out is
|
|
412
|
+
code (A game's level and its models, above). A block-out primitive in the
|
|
413
|
+
level stands only until its model is made.
|
|
441
414
|
- A source sits beside the asset it makes: a `.blend` and the script that
|
|
442
415
|
builds it (with its seed), an image's source.
|
|
443
416
|
|
|
444
417
|
## React UI
|
|
445
418
|
|
|
446
|
-
-
|
|
447
|
-
|
|
448
|
-
room's state with std's and @colyseus/react's hooks. Label what a player
|
|
449
|
-
reads (`role`, `aria-label`): a screen reader and the bots read the same.
|
|
419
|
+
- A game's HUD, menus and screens are React in its client (`client/hud.tsx`
|
|
420
|
+
and beside it): plain DOM over the `<Canvas>`, drawn from the room's state.
|
|
450
421
|
- For a game HUD, verify the components over the running game against live
|
|
451
422
|
game state (`capture --region play`, and its labelled nodes in
|
|
452
423
|
`editor.inspect()`'s `inspection.screen`: role, name, bounds). For
|
|
@@ -472,9 +443,10 @@ diagnosing a problem. Do not call `editor.reloadPage()` to reveal new
|
|
|
472
443
|
files, boards, references or scripts: a reload interrupts the editor and its
|
|
473
444
|
chat, so reserve it for an explicit request or a diagnosed problem.
|
|
474
445
|
|
|
475
|
-
The bottom area has two views, Game (the
|
|
476
|
-
Timeline, Action Editor and NLA editor);
|
|
477
|
-
change what plays, and a running game keeps
|
|
446
|
+
The bottom area is the Game panel. Below a model, it has two views, Game (the
|
|
447
|
+
Game panel) and Animation (Blender's Timeline, Action Editor and NLA editor);
|
|
448
|
+
they arrange the editor and do not change what plays, and a running game keeps
|
|
449
|
+
running in either, and whatever tab is in front. Play is
|
|
478
450
|
running the game.
|
|
479
451
|
|
|
480
452
|
Commands, all through `npx --no-install cyclotron`:
|
|
@@ -500,11 +472,14 @@ Commands, all through `npx --no-install cyclotron`:
|
|
|
500
472
|
game with its HUD, as that page captures itself.
|
|
501
473
|
- `add-play`: make this project a std game. `play-log`: the running game's log.
|
|
502
474
|
- The Game panel's controls, each printing its state: `play autoplay on
|
|
503
|
-
[<goal>]` (std's
|
|
475
|
+
[<goal>]` (std's play of a goal, on the viewed player's page while the Game
|
|
476
|
+
view is on screen) and `play autoplay
|
|
504
477
|
off` (that play ended, and the viewed player's bot where it drives); `play pause` and
|
|
505
478
|
`play resume` (every player's page holds its clock); `play step [count]` (one
|
|
506
|
-
1/60 s frame each, pausing first); `play speed 0.25|0.5|1|2|4`; `play
|
|
507
|
-
(
|
|
479
|
+
1/60 s frame each, pausing first); `play speed 0.25|0.5|1|2|4`; `play players [1-8]`
|
|
480
|
+
(how many players Play starts: the project's `volter.play.players`,
|
|
481
|
+
which it sets); `play restart`
|
|
482
|
+
(the game's pages loaded afresh); `play mode game|animation` (a model's view).
|
|
508
483
|
- `export web|roblox|unreal`: the game exported, as the Game panel's Export
|
|
509
484
|
does: `web` its web build (`dist/`), an engine one of its targets
|
|
510
485
|
(`npx std target add roblox` adds one, only when the person asks).
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The game's main level, laid out in code: what stands where, lit, as the game's first frame. A level is a React component
|
|
3
|
+
* the room renders into its world (for collision) and every page draws, the same on every target. The models it places
|
|
4
|
+
* are made in Blender, each its own `prefabs/<name>/<name>.blend`, whose export writes its component
|
|
5
|
+
* (`prefabs/ground/Ground.tsx`); their layout, their bodies, the lights and where the players come in are this file's.
|
|
6
|
+
* It is a document of its own in the editor, drawn as you change it. This file is the game's: change it.
|
|
7
|
+
*/
|
|
8
|
+
import { RigidBody } from '@react-three/rapier';
|
|
9
|
+
import { SpawnPoint, stdSun } from '@volter-ai/std/level/client';
|
|
10
|
+
import { Ground } from '../prefabs/ground/Ground.tsx';
|
|
11
|
+
|
|
12
|
+
/** The level: the ground its bodies collide with, the sky's light and the sun, and the spawn point. */
|
|
13
|
+
export function MainLevel() {
|
|
14
|
+
return (
|
|
15
|
+
<group name="MainLevel">
|
|
16
|
+
<RigidBody type="fixed" colliders="cuboid">
|
|
17
|
+
<Ground />
|
|
18
|
+
</RigidBody>
|
|
19
|
+
<hemisphereLight name="Sky" args={['#dbe9ff', '#6a994e', 1]} />
|
|
20
|
+
<directionalLight name="Sun" ref={stdSun} position={[10, 20, 8]} intensity={3} castShadow />
|
|
21
|
+
<SpawnPoint name="Spawn" position={[0, 1, 0]} />
|
|
22
|
+
</group>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ground: prefabs/ground/ground.glb as a component, written by std level (std-dev) as gltfjsx writes one: the prefab's
|
|
3
|
+
* model, its bodies react-three-rapier's (from the Blender file's Rigid Body panel, each following its object through
|
|
4
|
+
* std's useFollowObject), its markers std's, pure as what the room renders is. The room renders it where its level
|
|
5
|
+
* places it (std's root of the room, its bodies react-three-rapier's own), as each page does; its behaviour, the room's
|
|
6
|
+
* half, is the game's (`this.std.onBehaviour`). Export it again when the .blend changes; edit the game's code, not this
|
|
7
|
+
* file.
|
|
8
|
+
*/
|
|
9
|
+
import type * as THREE from 'three';
|
|
10
|
+
import { useGLTF } from '@react-three/drei';
|
|
11
|
+
import groundUrl from './ground.glb?url';
|
|
12
|
+
|
|
13
|
+
/** The glb's nodes and materials this component reads, typed as gltfjsx's `--types` types them. */
|
|
14
|
+
type GLTFResult = ReturnType<typeof useGLTF<string>> & { nodes: { Floor: THREE.Mesh }; materials: { Grass: THREE.Material } };
|
|
15
|
+
|
|
16
|
+
/** prefabs/ground/ground.glb's scene: its meshes and markers, its bodies around the nodes that collide. */
|
|
17
|
+
export function Ground(props: { name?: string; position?: [number, number, number]; rotation?: [number, number, number]; scale?: number | [number, number, number]; userData?: Record<string, unknown> }) {
|
|
18
|
+
const { nodes, materials } = useGLTF(groundUrl) as GLTFResult;
|
|
19
|
+
return (
|
|
20
|
+
<group name="Ground" {...props}>
|
|
21
|
+
<mesh name="Floor" geometry={nodes.Floor.geometry} material={materials.Grass} receiveShadow position={[0, -0.5, 0]} />
|
|
22
|
+
</group>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
Binary file
|
|
Binary file
|