@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lM as i}from"./volter-sdk-D8o6TU4A.js";export{i as AlignmentGrid};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cM as r}from"./volter-sdk-D8o6TU4A.js";export{r as AssetSlotPicker};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lU as i,lV as s,lW as a,lX as d,lY as l,lZ as e}from"./volter-sdk-D8o6TU4A.js";export{i as BorderEditor,s as BorderRadiusEditor,a as isUniformBorder,d as isUniformRadius,l as uniformBorder,e as uniformRadius};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j9 as a,lS as l}from"./volter-sdk-D8o6TU4A.js";export{a as ColorPicker,l as ColorSwatch};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m5 as e}from"./volter-sdk-D8o6TU4A.js";export{e as CurveEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m9 as e}from"./volter-sdk-D8o6TU4A.js";export{e as FontPicker};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ma as e,mb as s,mc as t,md as d}from"./volter-sdk-D8o6TU4A.js";export{e as GradientEditor,s as GradientStopsTrack,t as composeGradient,d as parseGradient};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lT as a}from"./volter-sdk-D8o6TU4A.js";export{a as ScrubbableInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{me as s,mf as m,mg as d,mh as S,mi as h,mj as r,mk as t}from"./volter-sdk-D8o6TU4A.js";export{s as DEFAULT_SHADOW,m as DEFAULT_TEXT_SHADOW,d as ShadowEditor,S as ShadowListEditor,h as TextShadowEditor,r as composeShadows,t as parseShadows};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lN as o,ja as l,lO as r,lP as g,jc as b,lQ as T,lR as e,jb as h}from"./volter-sdk-D8o6TU4A.js";export{o as colorToString,l as hexToRgb,r as hslToRgb,g as hsvToRgb,b as parseAlpha,T as rgbStringToHex,e as rgbToHsv,h as toHex};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l_ as s,l$ as m,m0 as t,m1 as l,m2 as n,m3 as o,m4 as r}from"./volter-sdk-D8o6TU4A.js";export{s as curveKeys,m as curveValueRange,t as deleteKey,l as moveKey,n as moveTangent,o as segmentEnd,r as splitAt};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lM as e,cM as r,lU as o,lV as i,j9 as t,lS as l,m5 as m,me as d,mf as n,lF as c,lG as E,m6 as S,m9 as T,ma as u,mb as p,cH as g,lT as h,mg as F,mh as f,gQ as A,mi as L,lH as b,m7 as w,mc as H,mj as O,l_ as _,l$ as B,m0 as G,lI as j,lJ as k,lK as v,ja as y,lW as C,lX as D,m1 as R,m2 as U,jc as x,m8 as K,md as M,mk as W,lL as I,m3 as N,m4 as P,jb as V,lY as X,lZ as J}from"./volter-sdk-D8o6TU4A.js";export{e as AlignmentGrid,r as AssetSlotPicker,o as BorderEditor,i as BorderRadiusEditor,t as ColorPicker,l as ColorSwatch,m as CurveEditor,d as DEFAULT_SHADOW,n as DEFAULT_TEXT_SHADOW,c as FONT,E as FONT_MONO,S as FilterEditor,T as FontPicker,u as GradientEditor,p as GradientStopsTrack,g as LABEL_COL_WIDTH,h as ScrubbableInput,F as ShadowEditor,f as ShadowListEditor,A as THEME,L as TextShadowEditor,b as ToggleButton,w as composeFilter,H as composeGradient,O as composeShadows,_ as curveKeys,B as curveValueRange,G as deleteKey,j as fieldLabelStyle,k as fireChange,v as fireEnd,y as hexToRgb,C as isUniformBorder,D as isUniformRadius,R as moveKey,U as moveTangent,x as parseAlpha,K as parseFilterFunctions,M as parseGradient,W as parseShadows,I as rowStyle,N as segmentEnd,P as splitAt,V as toHex,X as uniformBorder,J as uniformRadius};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lF as e,lG as s,cH as o,gQ as r,lH as t,lI as L,lJ as O,lK as T,lL as f}from"./volter-sdk-D8o6TU4A.js";export{e as FONT,s as FONT_MONO,o as LABEL_COL_WIDTH,r as THEME,t as ToggleButton,L as fieldLabelStyle,O as fireChange,T as fireEnd,f as rowStyle};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e4 as o,l6 as a}from"./volter-sdk-D8o6TU4A.js";export{o as InteractiveEditScopeContext,a as useInteractiveEditScope};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aq as r,as as s,at as e,ar as g}from"./volter-sdk-D8o6TU4A.js";export{r as Dialog,s as DialogBody,e as DialogFooter,g as DialogHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cz as e,al as l}from"./volter-sdk-D8o6TU4A.js";export{e as FieldGroup,l as FieldRow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k$ as r}from"./volter-sdk-D8o6TU4A.js";export{r as EditorListButton};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{iU as r}from"./volter-sdk-D8o6TU4A.js";export{r as StateSurface};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{fB as a,jP as e,jO as t,en as d}from"./volter-sdk-D8o6TU4A.js";export{a as DropIndicator,e as EditorBanner,t as EditorPopover,d as EditorSurface};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l0 as r,l1 as t}from"./volter-sdk-D8o6TU4A.js";export{r as EditorTab,t as EditorTabList};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{eo as r,gX as l,jR as t,eq as i,l2 as s}from"./volter-sdk-D8o6TU4A.js";export{r as EditorToolbar,l as FloatingToolbar,t as SplitButtonGroup,i as ToolbarDivider,s as ToolbarGroup};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l3 as o,l4 as t}from"./volter-sdk-D8o6TU4A.js";export{o as EditorTree,t as EditorTreeRow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{hr as r,hs as u}from"./volter-sdk-D8o6TU4A.js";export{r as AnchoredMenu,u as MenuSubmenu};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{an as n,cF as a}from"./volter-sdk-D8o6TU4A.js";export{n as Button,a as IconButton};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{kz as p}from"./volter-sdk-D8o6TU4A.js";export{p as ColorInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cI as a}from"./volter-sdk-D8o6TU4A.js";export{a as DraftTextInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{gg as r,cf as s}from"./volter-sdk-D8o6TU4A.js";export{r as DisclosureIcon,s as EditorIcon};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ap as t,cB as s,l7 as c,jE as p,cy as n,cK as o,et as l}from"./volter-sdk-D8o6TU4A.js";export{t as Checkbox,s as ColorSwatchInput,c as FileInput,p as RangeInput,n as Select,o as TextArea,l as TextInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lC as o}from"./volter-sdk-D8o6TU4A.js";export{o as HoverPreview};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lD as p}from"./volter-sdk-D8o6TU4A.js";export{p as JsonInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{kZ as i,gq as e,gp as k,k6 as n}from"./volter-sdk-D8o6TU4A.js";export{i as Actions,e as Divider,k as Inline,n as Stack};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ge as r,gf as s,gm as g,gl as u,l5 as n}from"./volter-sdk-D8o6TU4A.js";export{r as Menu,s as MenuItem,g as MenuSeparator,u as MenuTrigger,n as focusFirstMenuItem};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cA as m}from"./volter-sdk-D8o6TU4A.js";export{m as NumberInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ff as e}from"./volter-sdk-D8o6TU4A.js";export{e as Panel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{fq as r}from"./volter-sdk-D8o6TU4A.js";export{r as SectionHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k_ as m,am as o}from"./volter-sdk-D8o6TU4A.js";export{m as Keycap,o as Text};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{gd as r}from"./volter-sdk-D8o6TU4A.js";export{r as ThemeRootPortal};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{hj as r}from"./volter-sdk-D8o6TU4A.js";export{r as Tooltip};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cJ as o}from"./volter-sdk-D8o6TU4A.js";export{o as Vec3Input};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{gb as p}from"./volter-sdk-D8o6TU4A.js";export{p as clampRectToViewport};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f0 as e}from"./volter-sdk-D8o6TU4A.js";export{e as editorIcons};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lE as l}from"./volter-sdk-D8o6TU4A.js";export{l as panelHeaderStyle};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l8 as e,J as l,kE as t,l9 as i,la as o,lb as r,G as n,lc as c,b5 as d,ce as E,ga as g,ld as h,b7 as m,le as u,lf as S,lg as f,lh as M,li as T,lj as V,iW as b,lk as p,ll as R,iV as _,lm as z,H as A,ln as O,lo as D,gh as k,lp as w,lq as G,lr as I,ls as x,lt as y,lu as H,lv as W,k as N,fp as B,lw as C,lx as j,ly as q,b3 as v,t as F,lz as J,lA as L,lB as Y,ft as K}from"./volter-sdk-D8o6TU4A.js";export{e as EDITOR_CATEGORY_NAMES,l as EDITOR_REGION_NAMES,t as EDITOR_THEME_CLASS,i as STAGE_WORD_MODES,o as accent,r as accentMuted,n as applyEditorTheme,c as areaEmbossValue,d as bg,E as border,g as chromeSize,h as controlSize,m as danger,u as dangerFaint,S as dangerMuted,f as dynamic,M as dynamicBg,T as editorThemeVariables,V as focusRing,b as fontMono,p as fontSans,R as fontSize,_ as fontSizeVar,z as fontWeight,A as graphiteDarkEditorTheme,O as iconSize,D as lineHeight,k as lineHeightVar,w as motion,G as motionVar,I as radius,x as regionRowAltValue,y as scrim,H as selection,W as shadow,N as space,B as spaceVar,C as strokeWidth,j as success,q as successMuted,v as text,F as themeVars,J as usesGlassMaterial,L as warn,Y as warnMuted,K as zIndex};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ft as o}from"./volter-sdk-D8o6TU4A.js";export{o as zIndex};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i6 as e,nP as t,nQ as l}from"./volter-sdk-D8o6TU4A.js";export{e as setWorkerCallMeter,t as tabStallMetrics,l as workerCallTabMetrics};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ok as C,hC as E,hH as D,hB as O,ol as S}from"./volter-sdk-D8o6TU4A.js";export{C as CANVAS_COMPONENTS_DOCUMENT_ID,E as CANVAS_SCENE_DOCUMENT_ID,D as PINNED_ASYNC_DOCUMENT_IDS,O as SCENE_DOCUMENT_ID,S as UI_COMPONENTS_DOCUMENT_ID};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bD as o,bE as s,bJ as a,az as t,bK as n,iO as r,em as i,v as p,iX as u,u as D,x as m,hK as k,ij as W,iK as b,bF as l,bS as v,eu as S,bb as K}from"./volter-sdk-D8o6TU4A.js";export{o as WORKSPACE_DOCUMENT_KINDS,s as activateWorkspaceDocument,a as activeWorkspaceDocument,t as activeWorkspaceDocumentId,n as activeWorkspaceDocumentSelection,r as activeWorkspaceDocumentViewId,i as closeAllWorkspaceDocuments,p as closeWorkspaceDocument,u as notifyWorkspaceDocumentSelectionChanged,D as openWorkspaceDocument,m as openWorkspaceDocuments,k as registerWorkspaceDocumentSelection,W as restorePinnedWorkspaceDocumentActivation,b as setActiveWorkspaceDocumentView,l as setWorkspaceDocumentTitle,v as subscribeWorkspaceDocuments,S as workspaceDocumentRegistryVersion,K as workspaceDocumentSelection};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as s,ii as o,ik as t}from"./volter-sdk-D8o6TU4A.js";export{s as registerWorkspaceDocumentRestorer,o as workspaceDocumentRestorerEntries,t as workspaceDocumentRestorers};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c0 as o}from"./volter-sdk-D8o6TU4A.js";export{o as WORKSPACE_STATIC_PANELS};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as a,iy as r,iz as e,iP as i}from"./volter-sdk-D8o6TU4A.js";export{a as registerWorkspaceStatus,r as subscribeWorkspaceStatus,e as workspaceStatusContributions,i as workspaceStatusRegistryVersion};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{iD as a,c4 as e,Z as t,cb as r,f1 as l,mB as c}from"./volter-sdk-D8o6TU4A.js";export{a as availableUtilityFingerprint,e as availableWorkspaceUtilities,t as registerWorkspaceUtility,r as subscribeWorkspaceUtilities,l as workspaceUtilityRegistryVersion,c as workspaceUtilitySection};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{gI as s,gu as t,gv as e,gB as r}from"./volter-sdk-D8o6TU4A.js";export{s as getRootCanvasViewport,t as resetRootCanvasViewport,e as setRootCanvasViewport,r as subscribeRootCanvasViewport};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{hI as e,gH as s,gG as t,eh as r,nX as n,hv as R,nY as g,gP as l,gA as P}from"./volter-sdk-D8o6TU4A.js";export{e as createRootViewController,s as getRootPan,t as panTransformValue,r as resetRootPan,n as setRootPan,R as setRootView,g as setRootZoom,l as sharedRootViewController,P as subscribeRootPan};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{mS as N,dc as _,mT as s,mU as L,mV as T,d_ as O}from"./volter-sdk-D8o6TU4A.js";export{N as EPHEMERAL_DESTINATION,_ as LIVE_ONLY_ACK,s as LIVE_ONLY_DESTINATION,L as NO_PERSISTABLE_CHILD_DESTINATION,T as resolvesLiveOnly,O as runWritePipe};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as t,_ as e}from"./client-Dj2xr2fw.js";import"./volter-sdk-D8o6TU4A.js";const o=t??e,a=o.createRoot,c=o.hydrateRoot,n=o.version;export{a as createRoot,o as default,c as hydrateRoot,n as version};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t}from"./three.module-JoAAxMWl.js";import"./volter-shared-three-core-DEsIwtOu.js";const e=t,r=e.ACESFilmicToneMapping,a=e.AddEquation,c=e.AddOperation,s=e.AdditiveAnimationBlendMode,i=e.AdditiveBlending,l=e.AgXToneMapping,p=e.AlphaFormat,m=e.AlwaysCompare,u=e.AlwaysDepth,C=e.AlwaysStencilFunc,d=e.AmbientLight,S=e.AnimationAction,T=e.AnimationClip,g=e.AnimationLoader,_=e.AnimationMixer,F=e.AnimationObjectGroup,G=e.AnimationUtils,A=e.ArcCurve,M=e.ArrayCamera,h=e.ArrowHelper,B=e.AttachedBindMode,R=e.Audio,L=e.AudioAnalyser,y=e.AudioContext,D=e.AudioListener,f=e.AudioLoader,E=e.AxesHelper,x=e.BackSide,b=e.BasicDepthPacking,P=e.BasicShadowMap,I=e.BatchedMesh,N=e.BezierInterpolant,U=e.Bone,O=e.BooleanKeyframeTrack,v=e.Box2,k=e.Box3,q=e.Box3Helper,w=e.BoxGeometry,H=e.BoxHelper,V=e.BufferAttribute,W=e.BufferGeometry,K=e.BufferGeometryLoader,z=e.ByteType,Q=e.Cache,X=e.Camera,j=e.CameraHelper,Z=e.CanvasTexture,J=e.CapsuleGeometry,Y=e.CatmullRomCurve3,$=e.CineonToneMapping,ee=e.CircleGeometry,te=e.ClampToEdgeWrapping,oe=e.Clock,ne=e.Color,re=e.ColorKeyframeTrack,ae=e.ColorManagement,ce=e.Compatibility,se=e.CompressedArrayTexture,ie=e.CompressedCubeTexture,le=e.CompressedTexture,pe=e.CompressedTextureLoader,me=e.ConeGeometry,ue=e.ConstantAlphaFactor,Ce=e.ConstantColorFactor,de=e.Controls,Se=e.CubeCamera,Te=e.CubeDepthTexture,ge=e.CubeReflectionMapping,_e=e.CubeRefractionMapping,Fe=e.CubeTexture,Ge=e.CubeTextureLoader,Ae=e.CubeUVReflectionMapping,Me=e.CubicBezierCurve,he=e.CubicBezierCurve3,Be=e.CubicInterpolant,Re=e.CullFaceBack,Le=e.CullFaceFront,ye=e.CullFaceFrontBack,De=e.CullFaceNone,fe=e.Curve,Ee=e.CurvePath,xe=e.CustomBlending,be=e.CustomToneMapping,Pe=e.CylinderGeometry,Ie=e.Cylindrical,Ne=e.Data3DTexture,Ue=e.DataArrayTexture,Oe=e.DataTexture,ve=e.DataTextureLoader,ke=e.DataUtils,qe=e.DecrementStencilOp,we=e.DecrementWrapStencilOp,He=e.DefaultLoadingManager,Ve=e.DepthFormat,We=e.DepthStencilFormat,Ke=e.DepthTexture,ze=e.DetachedBindMode,Qe=e.DirectionalLight,Xe=e.DirectionalLightHelper,je=e.DiscreteInterpolant,Ze=e.DodecahedronGeometry,Je=e.DoubleSide,Ye=e.DstAlphaFactor,$e=e.DstColorFactor,et=e.DynamicCopyUsage,tt=e.DynamicDrawUsage,ot=e.DynamicReadUsage,nt=e.EdgesGeometry,rt=e.EllipseCurve,at=e.EqualCompare,ct=e.EqualDepth,st=e.EqualStencilFunc,it=e.EquirectangularReflectionMapping,lt=e.EquirectangularRefractionMapping,pt=e.Euler,mt=e.EventDispatcher,ut=e.ExternalTexture,Ct=e.ExtrudeGeometry,dt=e.FileLoader,St=e.Float16BufferAttribute,Tt=e.Float32BufferAttribute,gt=e.FloatType,_t=e.Fog,Ft=e.FogExp2,Gt=e.FramebufferTexture,At=e.FrontSide,Mt=e.Frustum,ht=e.FrustumArray,Bt=e.GLBufferAttribute,Rt=e.GLSL1,Lt=e.GLSL3,yt=e.GreaterCompare,Dt=e.GreaterDepth,ft=e.GreaterEqualCompare,Et=e.GreaterEqualDepth,xt=e.GreaterEqualStencilFunc,bt=e.GreaterStencilFunc,Pt=e.GridHelper,It=e.Group,Nt=e.HTMLTexture,Ut=e.HalfFloatType,Ot=e.HemisphereLight,vt=e.HemisphereLightHelper,kt=e.IcosahedronGeometry,qt=e.ImageBitmapLoader,wt=e.ImageLoader,Ht=e.ImageUtils,Vt=e.IncrementStencilOp,Wt=e.IncrementWrapStencilOp,Kt=e.InstancedBufferAttribute,zt=e.InstancedBufferGeometry,Qt=e.InstancedInterleavedBuffer,Xt=e.InstancedMesh,jt=e.Int16BufferAttribute,Zt=e.Int32BufferAttribute,Jt=e.Int8BufferAttribute,Yt=e.IntType,$t=e.InterleavedBuffer,eo=e.InterleavedBufferAttribute,to=e.Interpolant,oo=e.InterpolateBezier,no=e.InterpolateDiscrete,ro=e.InterpolateLinear,ao=e.InterpolateSmooth,co=e.InterpolationSamplingMode,so=e.InterpolationSamplingType,io=e.InvertStencilOp,lo=e.KeepStencilOp,po=e.KeyframeTrack,mo=e.LOD,uo=e.LatheGeometry,Co=e.Layers,So=e.LessCompare,To=e.LessDepth,go=e.LessEqualCompare,_o=e.LessEqualDepth,Fo=e.LessEqualStencilFunc,Go=e.LessStencilFunc,Ao=e.Light,Mo=e.LightProbe,ho=e.LightShadow,Bo=e.Line,Ro=e.Line3,Lo=e.LineBasicMaterial,yo=e.LineCurve,Do=e.LineCurve3,fo=e.LineDashedMaterial,Eo=e.LineLoop,xo=e.LineSegments,bo=e.LinearFilter,Po=e.LinearInterpolant,Io=e.LinearMipMapLinearFilter,No=e.LinearMipMapNearestFilter,Uo=e.LinearMipmapLinearFilter,Oo=e.LinearMipmapNearestFilter,vo=e.LinearSRGBColorSpace,ko=e.LinearToneMapping,qo=e.LinearTransfer,wo=e.Loader,Ho=e.LoaderUtils,Vo=e.LoadingManager,Wo=e.LoopOnce,Ko=e.LoopPingPong,zo=e.LoopRepeat,Qo=e.MOUSE,Xo=e.Material,jo=e.MaterialBlending,Zo=e.MaterialLoader,Jo=e.MathUtils,Yo=e.Matrix2,$o=e.Matrix3,en=e.Matrix4,tn=e.MaxEquation,on=e.Mesh,nn=e.MeshBasicMaterial,rn=e.MeshDepthMaterial,an=e.MeshDistanceMaterial,cn=e.MeshLambertMaterial,sn=e.MeshMatcapMaterial,ln=e.MeshNormalMaterial,pn=e.MeshPhongMaterial,mn=e.MeshPhysicalMaterial,un=e.MeshStandardMaterial,Cn=e.MeshToonMaterial,dn=e.MinEquation,Sn=e.MirroredRepeatWrapping,Tn=e.MixOperation,gn=e.MultiplyBlending,_n=e.MultiplyOperation,Fn=e.NearestFilter,Gn=e.NearestMipMapLinearFilter,An=e.NearestMipMapNearestFilter,Mn=e.NearestMipmapLinearFilter,hn=e.NearestMipmapNearestFilter,Bn=e.NeutralToneMapping,Rn=e.NeverCompare,Ln=e.NeverDepth,yn=e.NeverStencilFunc,Dn=e.NoBlending,fn=e.NoColorSpace,En=e.NoNormalPacking,xn=e.NoToneMapping,bn=e.NormalAnimationBlendMode,Pn=e.NormalBlending,In=e.NormalGAPacking,Nn=e.NormalRGPacking,Un=e.NotEqualCompare,On=e.NotEqualDepth,vn=e.NotEqualStencilFunc,kn=e.NumberKeyframeTrack,qn=e.Object3D,wn=e.ObjectLoader,Hn=e.ObjectSpaceNormalMap,Vn=e.OctahedronGeometry,Wn=e.OneFactor,Kn=e.OneMinusConstantAlphaFactor,zn=e.OneMinusConstantColorFactor,Qn=e.OneMinusDstAlphaFactor,Xn=e.OneMinusDstColorFactor,jn=e.OneMinusSrcAlphaFactor,Zn=e.OneMinusSrcColorFactor,Jn=e.OrthographicCamera,Yn=e.PCFShadowMap,$n=e.PCFSoftShadowMap,er=e.PMREMGenerator,tr=e.Path,or=e.PerspectiveCamera,nr=e.Plane,rr=e.PlaneGeometry,ar=e.PlaneHelper,cr=e.PointLight,sr=e.PointLightHelper,ir=e.Points,lr=e.PointsMaterial,pr=e.PolarGridHelper,mr=e.PolyhedronGeometry,ur=e.PositionalAudio,Cr=e.PropertyBinding,dr=e.PropertyMixer,Sr=e.QuadraticBezierCurve,Tr=e.QuadraticBezierCurve3,gr=e.Quaternion,_r=e.QuaternionKeyframeTrack,Fr=e.QuaternionLinearInterpolant,Gr=e.R11_EAC_Format,Ar=e.RED_GREEN_RGTC2_Format,Mr=e.RED_RGTC1_Format,hr=e.REVISION,Br=e.RG11_EAC_Format,Rr=e.RGBADepthPacking,Lr=e.RGBAFormat,yr=e.RGBAIntegerFormat,Dr=e.RGBA_ASTC_10x10_Format,fr=e.RGBA_ASTC_10x5_Format,Er=e.RGBA_ASTC_10x6_Format,xr=e.RGBA_ASTC_10x8_Format,br=e.RGBA_ASTC_12x10_Format,Pr=e.RGBA_ASTC_12x12_Format,Ir=e.RGBA_ASTC_4x4_Format,Nr=e.RGBA_ASTC_5x4_Format,Ur=e.RGBA_ASTC_5x5_Format,Or=e.RGBA_ASTC_6x5_Format,vr=e.RGBA_ASTC_6x6_Format,kr=e.RGBA_ASTC_8x5_Format,qr=e.RGBA_ASTC_8x6_Format,wr=e.RGBA_ASTC_8x8_Format,Hr=e.RGBA_BPTC_Format,Vr=e.RGBA_ETC2_EAC_Format,Wr=e.RGBA_PVRTC_2BPPV1_Format,Kr=e.RGBA_PVRTC_4BPPV1_Format,zr=e.RGBA_S3TC_DXT1_Format,Qr=e.RGBA_S3TC_DXT3_Format,Xr=e.RGBA_S3TC_DXT5_Format,jr=e.RGBDepthPacking,Zr=e.RGBFormat,Jr=e.RGBIntegerFormat,Yr=e.RGB_BPTC_SIGNED_Format,$r=e.RGB_BPTC_UNSIGNED_Format,ea=e.RGB_ETC1_Format,ta=e.RGB_ETC2_Format,oa=e.RGB_PVRTC_2BPPV1_Format,na=e.RGB_PVRTC_4BPPV1_Format,ra=e.RGB_S3TC_DXT1_Format,aa=e.RGDepthPacking,ca=e.RGFormat,sa=e.RGIntegerFormat,ia=e.RawShaderMaterial,la=e.Ray,pa=e.Raycaster,ma=e.RectAreaLight,ua=e.RedFormat,Ca=e.RedIntegerFormat,da=e.ReinhardToneMapping,Sa=e.RenderObjectRefreshType,Ta=e.RenderTarget,ga=e.RenderTarget3D,_a=e.RepeatWrapping,Fa=e.ReplaceStencilOp,Ga=e.ReverseSubtractEquation,Aa=e.RingGeometry,Ma=e.SIGNED_R11_EAC_Format,ha=e.SIGNED_RED_GREEN_RGTC2_Format,Ba=e.SIGNED_RED_RGTC1_Format,Ra=e.SIGNED_RG11_EAC_Format,La=e.SRGBColorSpace,ya=e.SRGBTransfer,Da=e.Scene,fa=e.ShaderChunk,Ea=e.ShaderLib,xa=e.ShaderMaterial,ba=e.ShadowMaterial,Pa=e.Shape,Ia=e.ShapeGeometry,Na=e.ShapePath,Ua=e.ShapeUtils,Oa=e.ShortType,va=e.Skeleton,ka=e.SkeletonHelper,qa=e.SkinnedMesh,wa=e.Source,Ha=e.Sphere,Va=e.SphereGeometry,Wa=e.Spherical,Ka=e.SphericalHarmonics3,za=e.SplineCurve,Qa=e.SpotLight,Xa=e.SpotLightHelper,ja=e.Sprite,Za=e.SpriteMaterial,Ja=e.SrcAlphaFactor,Ya=e.SrcAlphaSaturateFactor,$a=e.SrcColorFactor,ec=e.StaticCopyUsage,tc=e.StaticDrawUsage,oc=e.StaticReadUsage,nc=e.StereoCamera,rc=e.StreamCopyUsage,ac=e.StreamDrawUsage,cc=e.StreamReadUsage,sc=e.StringKeyframeTrack,ic=e.SubtractEquation,lc=e.SubtractiveBlending,pc=e.TOUCH,mc=e.TangentSpaceNormalMap,uc=e.TetrahedronGeometry,Cc=e.Texture,dc=e.TextureLoader,Sc=e.TextureSource,Tc=e.TextureUtils,gc=e.Timer,_c=e.TimestampQuery,Fc=e.TorusGeometry,Gc=e.TorusKnotGeometry,Ac=e.Triangle,Mc=e.TriangleFanDrawMode,hc=e.TriangleStripDrawMode,Bc=e.TrianglesDrawMode,Rc=e.TubeGeometry,Lc=e.UVMapping,yc=e.Uint16BufferAttribute,Dc=e.Uint32BufferAttribute,fc=e.Uint8BufferAttribute,Ec=e.Uint8ClampedBufferAttribute,xc=e.Uniform,bc=e.UniformsGroup,Pc=e.UniformsLib,Ic=e.UniformsUtils,Nc=e.UnsignedByteType,Uc=e.UnsignedInt101111Type,Oc=e.UnsignedInt248Type,vc=e.UnsignedInt5999Type,kc=e.UnsignedIntType,qc=e.UnsignedShort4444Type,wc=e.UnsignedShort5551Type,Hc=e.UnsignedShortType,Vc=e.VSMShadowMap,Wc=e.Vector2,Kc=e.Vector3,zc=e.Vector4,Qc=e.VectorKeyframeTrack,Xc=e.VideoFrameTexture,jc=e.VideoTexture,Zc=e.WebGL3DRenderTarget,Jc=e.WebGLArrayRenderTarget,Yc=e.WebGLCoordinateSystem,$c=e.WebGLCubeRenderTarget,es=e.WebGLRenderTarget,ts=e.WebGLRenderer,os=e.WebGLUtils,ns=e.WebGPUCoordinateSystem,rs=e.WebXRController,as=e.WireframeGeometry,cs=e.WrapAroundEnding,ss=e.ZeroCurvatureEnding,is=e.ZeroFactor,ls=e.ZeroSlopeEnding,ps=e.ZeroStencilOp,ms=e.createCanvasElement,us=e.error,Cs=e.getConsoleFunction,ds=e.log,Ss=e.setConsoleFunction,Ts=e.warn,gs=e.warnOnce;export{r as ACESFilmicToneMapping,a as AddEquation,c as AddOperation,s as AdditiveAnimationBlendMode,i as AdditiveBlending,l as AgXToneMapping,p as AlphaFormat,m as AlwaysCompare,u as AlwaysDepth,C as AlwaysStencilFunc,d as AmbientLight,S as AnimationAction,T as AnimationClip,g as AnimationLoader,_ as AnimationMixer,F as AnimationObjectGroup,G as AnimationUtils,A as ArcCurve,M as ArrayCamera,h as ArrowHelper,B as AttachedBindMode,R as Audio,L as AudioAnalyser,y as AudioContext,D as AudioListener,f as AudioLoader,E as AxesHelper,x as BackSide,b as BasicDepthPacking,P as BasicShadowMap,I as BatchedMesh,N as BezierInterpolant,U as Bone,O as BooleanKeyframeTrack,v as Box2,k as Box3,q as Box3Helper,w as BoxGeometry,H as BoxHelper,V as BufferAttribute,W as BufferGeometry,K as BufferGeometryLoader,z as ByteType,Q as Cache,X as Camera,j as CameraHelper,Z as CanvasTexture,J as CapsuleGeometry,Y as CatmullRomCurve3,$ as CineonToneMapping,ee as CircleGeometry,te as ClampToEdgeWrapping,oe as Clock,ne as Color,re as ColorKeyframeTrack,ae as ColorManagement,ce as Compatibility,se as CompressedArrayTexture,ie as CompressedCubeTexture,le as CompressedTexture,pe as CompressedTextureLoader,me as ConeGeometry,ue as ConstantAlphaFactor,Ce as ConstantColorFactor,de as Controls,Se as CubeCamera,Te as CubeDepthTexture,ge as CubeReflectionMapping,_e as CubeRefractionMapping,Fe as CubeTexture,Ge as CubeTextureLoader,Ae as CubeUVReflectionMapping,Me as CubicBezierCurve,he as CubicBezierCurve3,Be as CubicInterpolant,Re as CullFaceBack,Le as CullFaceFront,ye as CullFaceFrontBack,De as CullFaceNone,fe as Curve,Ee as CurvePath,xe as CustomBlending,be as CustomToneMapping,Pe as CylinderGeometry,Ie as Cylindrical,Ne as Data3DTexture,Ue as DataArrayTexture,Oe as DataTexture,ve as DataTextureLoader,ke as DataUtils,qe as DecrementStencilOp,we as DecrementWrapStencilOp,He as DefaultLoadingManager,Ve as DepthFormat,We as DepthStencilFormat,Ke as DepthTexture,ze as DetachedBindMode,Qe as DirectionalLight,Xe as DirectionalLightHelper,je as DiscreteInterpolant,Ze as DodecahedronGeometry,Je as DoubleSide,Ye as DstAlphaFactor,$e as DstColorFactor,et as DynamicCopyUsage,tt as DynamicDrawUsage,ot as DynamicReadUsage,nt as EdgesGeometry,rt as EllipseCurve,at as EqualCompare,ct as EqualDepth,st as EqualStencilFunc,it as EquirectangularReflectionMapping,lt as EquirectangularRefractionMapping,pt as Euler,mt as EventDispatcher,ut as ExternalTexture,Ct as ExtrudeGeometry,dt as FileLoader,St as Float16BufferAttribute,Tt as Float32BufferAttribute,gt as FloatType,_t as Fog,Ft as FogExp2,Gt as FramebufferTexture,At as FrontSide,Mt as Frustum,ht as FrustumArray,Bt as GLBufferAttribute,Rt as GLSL1,Lt as GLSL3,yt as GreaterCompare,Dt as GreaterDepth,ft as GreaterEqualCompare,Et as GreaterEqualDepth,xt as GreaterEqualStencilFunc,bt as GreaterStencilFunc,Pt as GridHelper,It as Group,Nt as HTMLTexture,Ut as HalfFloatType,Ot as HemisphereLight,vt as HemisphereLightHelper,kt as IcosahedronGeometry,qt as ImageBitmapLoader,wt as ImageLoader,Ht as ImageUtils,Vt as IncrementStencilOp,Wt as IncrementWrapStencilOp,Kt as InstancedBufferAttribute,zt as InstancedBufferGeometry,Qt as InstancedInterleavedBuffer,Xt as InstancedMesh,jt as Int16BufferAttribute,Zt as Int32BufferAttribute,Jt as Int8BufferAttribute,Yt as IntType,$t as InterleavedBuffer,eo as InterleavedBufferAttribute,to as Interpolant,oo as InterpolateBezier,no as InterpolateDiscrete,ro as InterpolateLinear,ao as InterpolateSmooth,co as InterpolationSamplingMode,so as InterpolationSamplingType,io as InvertStencilOp,lo as KeepStencilOp,po as KeyframeTrack,mo as LOD,uo as LatheGeometry,Co as Layers,So as LessCompare,To as LessDepth,go as LessEqualCompare,_o as LessEqualDepth,Fo as LessEqualStencilFunc,Go as LessStencilFunc,Ao as Light,Mo as LightProbe,ho as LightShadow,Bo as Line,Ro as Line3,Lo as LineBasicMaterial,yo as LineCurve,Do as LineCurve3,fo as LineDashedMaterial,Eo as LineLoop,xo as LineSegments,bo as LinearFilter,Po as LinearInterpolant,Io as LinearMipMapLinearFilter,No as LinearMipMapNearestFilter,Uo as LinearMipmapLinearFilter,Oo as LinearMipmapNearestFilter,vo as LinearSRGBColorSpace,ko as LinearToneMapping,qo as LinearTransfer,wo as Loader,Ho as LoaderUtils,Vo as LoadingManager,Wo as LoopOnce,Ko as LoopPingPong,zo as LoopRepeat,Qo as MOUSE,Xo as Material,jo as MaterialBlending,Zo as MaterialLoader,Jo as MathUtils,Yo as Matrix2,$o as Matrix3,en as Matrix4,tn as MaxEquation,on as Mesh,nn as MeshBasicMaterial,rn as MeshDepthMaterial,an as MeshDistanceMaterial,cn as MeshLambertMaterial,sn as MeshMatcapMaterial,ln as MeshNormalMaterial,pn as MeshPhongMaterial,mn as MeshPhysicalMaterial,un as MeshStandardMaterial,Cn as MeshToonMaterial,dn as MinEquation,Sn as MirroredRepeatWrapping,Tn as MixOperation,gn as MultiplyBlending,_n as MultiplyOperation,Fn as NearestFilter,Gn as NearestMipMapLinearFilter,An as NearestMipMapNearestFilter,Mn as NearestMipmapLinearFilter,hn as NearestMipmapNearestFilter,Bn as NeutralToneMapping,Rn as NeverCompare,Ln as NeverDepth,yn as NeverStencilFunc,Dn as NoBlending,fn as NoColorSpace,En as NoNormalPacking,xn as NoToneMapping,bn as NormalAnimationBlendMode,Pn as NormalBlending,In as NormalGAPacking,Nn as NormalRGPacking,Un as NotEqualCompare,On as NotEqualDepth,vn as NotEqualStencilFunc,kn as NumberKeyframeTrack,qn as Object3D,wn as ObjectLoader,Hn as ObjectSpaceNormalMap,Vn as OctahedronGeometry,Wn as OneFactor,Kn as OneMinusConstantAlphaFactor,zn as OneMinusConstantColorFactor,Qn as OneMinusDstAlphaFactor,Xn as OneMinusDstColorFactor,jn as OneMinusSrcAlphaFactor,Zn as OneMinusSrcColorFactor,Jn as OrthographicCamera,Yn as PCFShadowMap,$n as PCFSoftShadowMap,er as PMREMGenerator,tr as Path,or as PerspectiveCamera,nr as Plane,rr as PlaneGeometry,ar as PlaneHelper,cr as PointLight,sr as PointLightHelper,ir as Points,lr as PointsMaterial,pr as PolarGridHelper,mr as PolyhedronGeometry,ur as PositionalAudio,Cr as PropertyBinding,dr as PropertyMixer,Sr as QuadraticBezierCurve,Tr as QuadraticBezierCurve3,gr as Quaternion,_r as QuaternionKeyframeTrack,Fr as QuaternionLinearInterpolant,Gr as R11_EAC_Format,Ar as RED_GREEN_RGTC2_Format,Mr as RED_RGTC1_Format,hr as REVISION,Br as RG11_EAC_Format,Rr as RGBADepthPacking,Lr as RGBAFormat,yr as RGBAIntegerFormat,Dr as RGBA_ASTC_10x10_Format,fr as RGBA_ASTC_10x5_Format,Er as RGBA_ASTC_10x6_Format,xr as RGBA_ASTC_10x8_Format,br as RGBA_ASTC_12x10_Format,Pr as RGBA_ASTC_12x12_Format,Ir as RGBA_ASTC_4x4_Format,Nr as RGBA_ASTC_5x4_Format,Ur as RGBA_ASTC_5x5_Format,Or as RGBA_ASTC_6x5_Format,vr as RGBA_ASTC_6x6_Format,kr as RGBA_ASTC_8x5_Format,qr as RGBA_ASTC_8x6_Format,wr as RGBA_ASTC_8x8_Format,Hr as RGBA_BPTC_Format,Vr as RGBA_ETC2_EAC_Format,Wr as RGBA_PVRTC_2BPPV1_Format,Kr as RGBA_PVRTC_4BPPV1_Format,zr as RGBA_S3TC_DXT1_Format,Qr as RGBA_S3TC_DXT3_Format,Xr as RGBA_S3TC_DXT5_Format,jr as RGBDepthPacking,Zr as RGBFormat,Jr as RGBIntegerFormat,Yr as RGB_BPTC_SIGNED_Format,$r as RGB_BPTC_UNSIGNED_Format,ea as RGB_ETC1_Format,ta as RGB_ETC2_Format,oa as RGB_PVRTC_2BPPV1_Format,na as RGB_PVRTC_4BPPV1_Format,ra as RGB_S3TC_DXT1_Format,aa as RGDepthPacking,ca as RGFormat,sa as RGIntegerFormat,ia as RawShaderMaterial,la as Ray,pa as Raycaster,ma as RectAreaLight,ua as RedFormat,Ca as RedIntegerFormat,da as ReinhardToneMapping,Sa as RenderObjectRefreshType,Ta as RenderTarget,ga as RenderTarget3D,_a as RepeatWrapping,Fa as ReplaceStencilOp,Ga as ReverseSubtractEquation,Aa as RingGeometry,Ma as SIGNED_R11_EAC_Format,ha as SIGNED_RED_GREEN_RGTC2_Format,Ba as SIGNED_RED_RGTC1_Format,Ra as SIGNED_RG11_EAC_Format,La as SRGBColorSpace,ya as SRGBTransfer,Da as Scene,fa as ShaderChunk,Ea as ShaderLib,xa as ShaderMaterial,ba as ShadowMaterial,Pa as Shape,Ia as ShapeGeometry,Na as ShapePath,Ua as ShapeUtils,Oa as ShortType,va as Skeleton,ka as SkeletonHelper,qa as SkinnedMesh,wa as Source,Ha as Sphere,Va as SphereGeometry,Wa as Spherical,Ka as SphericalHarmonics3,za as SplineCurve,Qa as SpotLight,Xa as SpotLightHelper,ja as Sprite,Za as SpriteMaterial,Ja as SrcAlphaFactor,Ya as SrcAlphaSaturateFactor,$a as SrcColorFactor,ec as StaticCopyUsage,tc as StaticDrawUsage,oc as StaticReadUsage,nc as StereoCamera,rc as StreamCopyUsage,ac as StreamDrawUsage,cc as StreamReadUsage,sc as StringKeyframeTrack,ic as SubtractEquation,lc as SubtractiveBlending,pc as TOUCH,mc as TangentSpaceNormalMap,uc as TetrahedronGeometry,Cc as Texture,dc as TextureLoader,Sc as TextureSource,Tc as TextureUtils,gc as Timer,_c as TimestampQuery,Fc as TorusGeometry,Gc as TorusKnotGeometry,Ac as Triangle,Mc as TriangleFanDrawMode,hc as TriangleStripDrawMode,Bc as TrianglesDrawMode,Rc as TubeGeometry,Lc as UVMapping,yc as Uint16BufferAttribute,Dc as Uint32BufferAttribute,fc as Uint8BufferAttribute,Ec as Uint8ClampedBufferAttribute,xc as Uniform,bc as UniformsGroup,Pc as UniformsLib,Ic as UniformsUtils,Nc as UnsignedByteType,Uc as UnsignedInt101111Type,Oc as UnsignedInt248Type,vc as UnsignedInt5999Type,kc as UnsignedIntType,qc as UnsignedShort4444Type,wc as UnsignedShort5551Type,Hc as UnsignedShortType,Vc as VSMShadowMap,Wc as Vector2,Kc as Vector3,zc as Vector4,Qc as VectorKeyframeTrack,Xc as VideoFrameTexture,jc as VideoTexture,Zc as WebGL3DRenderTarget,Jc as WebGLArrayRenderTarget,Yc as WebGLCoordinateSystem,$c as WebGLCubeRenderTarget,es as WebGLRenderTarget,ts as WebGLRenderer,os as WebGLUtils,ns as WebGPUCoordinateSystem,rs as WebXRController,as as WireframeGeometry,cs as WrapAroundEnding,ss as ZeroCurvatureEnding,is as ZeroFactor,ls as ZeroSlopeEnding,ps as ZeroStencilOp,ms as createCanvasElement,e as default,us as error,Cs as getConsoleFunction,ds as log,Ss as setConsoleFunction,Ts as warn,gs as warnOnce};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
let le=0;class ue{constructor(n){this.work=n,this.job=++le,this.started=!1,this.finished=!1,this.sequence=0,this.expected=null,this.resume=null,this.waiter=null,this.ended=null}step(n){if(this.ended&&!this.waiter&&n===this.expected){const r=this.ended;return this.ended=null,this.expected=null,this.resume=null,"error"in r?Promise.reject(r.error):Promise.resolve({load:"done",value:r.value})}if(this.finished||this.waiter||(this.started?n!==this.expected||!this.resume:n!==void 0))return Promise.reject(new Error("Invalid or replayed load continuation"));const t=new Promise((r,s)=>{this.waiter={resolve:r,reject:s}});if(!this.started)this.started=!0,Promise.resolve().then(()=>this.work(r=>new Promise(s=>{this.resume=s,this.expected=`load:${this.job}:${++this.sequence}`;const o=this.waiter;this.waiter=null,o.resolve({load:"continue",token:this.expected,phase:r})}))).then(r=>{this.finished=!0;const s=this.waiter;this.waiter=null,s?s.resolve({load:"done",value:r}):this.ended={value:r}},r=>{this.finished=!0;const s=this.waiter;this.waiter=null,s?s.reject(r):(this.ended={error:r},console.warn("A Blender load failed between steps; the next step reports it:",r))});else{const r=this.resume;this.resume=null,this.expected=null,r()}return t}}function he(e,n){const t=e.getReader();let r,s=0;return new ReadableStream({async pull(o){try{if(!r||s===r.length){const a=await t.read();if(a.done){t.releaseLock(),o.close();return}r=a.value,s=0}await n();const i=Math.min(r.length,s+1024*1024);o.enqueue(r.subarray(s,i)),s=i}catch(i){await t.cancel(i).catch(()=>{}),o.error(i)}},async cancel(o){await t.cancel(o),t.releaseLock()}},{highWaterMark:0})}const G=1024*1024,fe={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},we=async e=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",e)),n=>n.toString(16).padStart(2,"0")).join("");async function pe(e,n){const t=[],r=JSON.stringify(e,(s,o)=>{if(!ArrayBuffer.isView(o))return o;const i=o.constructor.name;if(!Object.hasOwn(fe,i))throw new Error(`Unsupported frame column ${i}`);return t.push(new Uint8Array(o.buffer,o.byteOffset,o.byteLength)),{$frameColumn:t.length,type:i}});t.unshift(new TextEncoder().encode(r)),await n({kind:"begin",lengths:t.map(s=>s.byteLength)});for(const[s,o]of t.entries())for(let i=0;i<o.byteLength;i+=G){const a=o.slice(i,i+G),c=await we(a);await n({kind:"bytes",slot:s,offset:i,bytes:a,sha256:c})}return n({kind:"end"})}function B(e,n=!0){if(e instanceof Error)return(n?e.stack:void 0)??`${e.name}: ${e.message}`;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return typeof t.name=="string"?`${t.name}: ${t.message}`:t.message;try{return JSON.stringify(e)??Object.prototype.toString.call(e)}catch{return Object.prototype.toString.call(e)}}return String(e)}const y="/work/.volter-session",ze=`${y}/session.py`,Ke=[`${y}/in`,`${y}/reply`],ne="/__editor/blender-wasm";function Ge(e){return e.startsWith("@@VOLTER-ERROR")?"error":e.startsWith("@@VOLTER-WARN")?"warn":"log"}function ye(e){return new URL(`${ne}/${e}`,import.meta.url).href}async function R(e,n,t){try{return await t()}catch(r){const s=B(r,!1);throw new Error(`Blender startup ${n} (${e}): ${s}`,{cause:r})}}async function me(){const e=ye("status"),n=await R(e,"fetch status",()=>fetch(e));return n.ok?R(e,"decode status JSON",()=>n.json()):{available:!1,skew:null,dir:null,sizes:{},encoded:{},missing:[`${ne}/status answered ${n.status}`]}}async function be(e){const n=await me();if(await e.ask({checkpoint:"artifact-status"}),!n.available)throw new Error(`The headless Blender WebAssembly build is not served by this editor: ${n.missing.join("; ")}`);if(n.skew==="wali"){const{startWaliBlenderEngine:r}=await R(import.meta.url,"import WALI engine module from",()=>import("./blender-wali-engine-xLHhm0KZ.js"));return r(e,n)}const{startEmscriptenBlenderEngine:t}=await R(import.meta.url,"import Emscripten engine module from",()=>import("./blender-emscripten-engine-Bl_j9xEY.js"));return t(e,n)}function ge(e){return e<200?1:e<5e3?5:25}const $e=e=>new Promise(n=>setTimeout(n,e)),Y=new TextDecoder;function Ye(e,n,t){let r=0,s=0;const o=new Set;async function i(l){for(const d of o)l.has(`${d}.done`)||(await e.unlink(`${y}/reply/${d}.json`),await e.unlink(`${y}/reply/${d}.done`),o.delete(d))}async function a(){let l;try{l=await e.readdir(`${y}/ask`)}catch{return!1}const d=new Set(l.filter(w=>w.endsWith(".done")));await i(d);let u=!1;for(const w of d){const m=w.slice(0,-5);if(Number(m)<=s)continue;s=Number(m);const h=JSON.parse(Y.decode(await e.readFile(`${y}/ask/${m}.json`)));let p;try{p=await n.ask(h)}catch(j){p={error:j instanceof Error?j.message:String(j)}}await Promise.all([e.writeFile(`${y}/reply/${m}.json`,JSON.stringify(p??null)),e.writeFile(`${y}/reply/${m}.done`,"1")]),o.add(m),u=!0}return u}async function c(l){const d=String(++r);await Promise.all([e.writeFile(`${y}/in/${d}.json`,JSON.stringify(l)),e.writeFile(`${y}/in/${d}.done`,"1")]);let u=performance.now();for(;;){if(await a()&&(u=performance.now()),await e.stat(`${y}/out/${d}.done`)){const h=JSON.parse(Y.decode(await e.readFile(`${y}/out/${d}.json`)));if(await e.unlink(`${y}/in/${d}.json`),await e.unlink(`${y}/in/${d}.done`),h.error)throw new Error(h.error);return h.result}const w=t?.();if(w)throw new Error(`Blender is gone, so this call will never be answered: ${w}. The session keeps its directory and its cached banner, so every later call would wait on the same missing answer; start a new program with \`blender-start {fresh: true}\` (\`VOLTER_BLENDER_FRESH_SESSION=1\` for the battery harness).`);const m=ge(performance.now()-u);await(e.changed?e.changed(m):$e(m))}}return{request:c}}const ve=256*1024,Ee=4*1024*1024,Se=(1<<20)-1,ke=(()=>{const e=new Uint32Array(256);let n=2654435769;for(let t=0;t<256;t+=1)n^=n<<13,n^=n>>>17,n^=n<<5,e[t]=n>>>0;return e})();function je(e){const n=[];let t=0;for(;t<e.length;){const r=Math.min(e.length,t+Ee);let s=r,o=0;for(let i=t+Math.min(ve,r-t);i<r;i+=1)if(o=(o<<1)+ke[e[i]]>>>0,(o&Se)===0){s=i+1;break}n.push(s),t=s}return n}async function Te(e){const n=[];let t=0;for(const r of je(e)){const s=new Uint8Array(await crypto.subtle.digest("SHA-256",e.slice(t,r)));n.push({hash:Array.from(s,o=>o.toString(16).padStart(2,"0")).join(""),start:t,end:r}),t=r}return n}const I=e=>typeof e=="object"&&e!==null&&typeof e.offset=="number"&&typeof e.length=="number"&&typeof e.dtype=="string"&&typeof e.count=="number"&&typeof e.stride=="number",Ae={f32:e=>new Float32Array(e.buffer,e.byteOffset,e.byteLength>>2),f64:e=>new Float64Array(e.buffer,e.byteOffset,e.byteLength>>3),u32:e=>new Uint32Array(e.buffer,e.byteOffset,e.byteLength>>2),i32:e=>new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),u16:e=>new Uint16Array(e.buffer,e.byteOffset,e.byteLength>>1),i16:e=>new Int16Array(e.buffer,e.byteOffset,e.byteLength>>1),u8:e=>e,i8:e=>new Int8Array(e.buffer,e.byteOffset,e.byteLength)};function Oe(e,n,t){const r=Ae[t.dtype];if(!r)throw new Error(`Blender frame column ${n}: unknown dtype ${t.dtype}`);const{offset:s,length:o}=t;if(s<0||o<0||s+o>e.byteLength)throw new Error(`Blender frame column ${n}: bytes ${s}..${s+o} lie outside the ${e.byteLength}-byte export arena`);const i=e.subarray(s,s+o).slice(),a=r(i),c=t.count*t.stride;if(a.length!==c)throw new Error(`Blender frame column ${n}: ${a.length} values, ${c} declared (${t.count} x ${t.stride})`);return a}function U(e,n){const t=(r,s)=>{if(I(r))return Oe(e,s,r);if(Array.isArray(r))return r.map(o=>t(o,s));if(typeof r=="object"&&r!==null){const o={};for(const[i,a]of Object.entries(r))o[i]=t(a,i);return o}return r};return t(n,"")}async function D(e,n){const t=async(r,s)=>{if(I(r)){const{offset:o,length:i,dtype:a}=r;if(o<0||i<0||o+i>e.byteLength)throw new Error(`Blender frame column ${s}: bytes ${o}..${o+i} lie outside the ${e.byteLength}-byte export arena`);const c=e.subarray(o,o+i).slice(),l=await crypto.subtle.digest("SHA-256",c),d=[...new Uint8Array(l)].map(u=>u.toString(16).padStart(2,"0")).join("");return{dtype:a,length:i,sha256:d}}if(Array.isArray(r))return Promise.all(r.map(o=>t(o,s)));if(typeof r=="object"&&r!==null){const o={};for(const[i,a]of Object.entries(r))o[i]=await t(a,i);return o}return r};return t(n,"")}const $=e=>self.postMessage(e),k=(e,n)=>$({op:"log",level:e,text:n});let T=null,A=null,Be=0;const M=new Map;async function J(e){return await pe(e,async n=>{const t=e;await v?.(`frame-transfer/${t.op??"unknown"}/${t.mesh!==void 0?"mesh":t.image!==void 0?"image":"manifest"}/${n.kind}`);const r=++Be;return new Promise((s,o)=>{M.set(r,{resolve:s,reject:o});try{self.postMessage({op:"frame-stream",id:r,chunk:n},n.kind==="bytes"?[n.bytes.buffer]:[])}catch(i){M.delete(r),o(i)}})})}function Re(e,n,t){return J({op:"present",frame:e,description:n,...t?{capture:t}:{}})}let f=null,N=null,v=null,E=null,W=!1,X=null,Z=Promise.resolve();function Pe(e){const n=Z.then(e);return Z=n.catch(()=>{}),n}let S=null;async function Ne(e,n){const t=new Map,r=async(s,o)=>{if(I(s)){t.set(s.offset,{typed:U(e,{[o]:s})[o],description:await D(e,s)});return}if(Array.isArray(s))for(const i of s)await r(i,o);else if(typeof s=="object"&&s!==null)for(const[i,a]of Object.entries(s))await r(a,i)};return await r(n,""),t}function xe(e,n){const t=r=>{const s=(o,i)=>{if(I(o)){const c=e.columns.get(o.offset);if(!c)throw new Error(`Blender frame column ${i.join(".")}: not in the held frame`);return c[r]}if(Array.isArray(o))return o.map(c=>s(c,i));if(typeof o!="object"||o===null)return o;if(o.deferred===!0){const[c,l]=i.slice(-2),d=(c==="meshes"?e.meshes:e.images).get(l);if(!d)throw new Error(`Blender frame ${c} ${l}: deferred and never pulled`);return d[r]}const a={};for(const[c,l]of Object.entries(o)){const d=s(l,[...i,c]);d!==void 0&&(a[c]=d)}return a};return s(n,[])};return{typed:t("typed"),description:t("description")}}function x(e){W=e,$({op:"document-dirty",dirty:e})}async function re(e,n){let t;try{t=await f.request({op:"save-document"}),n("save")}catch(r){throw new Error(`The Blender document ${e} could not be saved: ${B(r)}`)}if(t?.saved===!1&&t.reason==="not-the-document"){const r=`${e} is not being saved: Blender holds ${t.holds??"another file"}, not its model. Save As a .blend under src/models to keep this as a document of its own, or reopen ${e} to return to it.`;return $({op:"document-saving",document:e,note:r}),k("warn",`@@VOLTER-WARN ${r}`),null}if(!t?.saved||typeof t.path!="string")throw new Error(`Blender did not save the document ${e}`);try{const r=await f.files.readFile(t.path);return n("read"),{path:t.path,bytes:r}}catch(r){throw new Error(`The Blender document ${e} could not be read back out of the engine: ${B(r)}`)}}async function Me(){if(!f||E===null)return!1;const e=E,n={};let t=performance.now();const r=a=>{const c=performance.now();n[a]=Math.round(c-t),t=c},s=await re(e,r);if(s===null)return x(!1),!1;const{bytes:o}=s;g.delete(s.path);let i=0;try{const a=await Te(o);r("chunk");const c=`path=${encodeURIComponent(e)}`,l=JSON.stringify({chunks:a.map(({hash:d,start:u,end:w})=>[d,w-u])});for(let d=0;;d+=1){const u=await fetch(`/__editor/blender-document?${c}`,{method:"POST",headers:{"content-type":"application/json"},body:l}),w=await u.json().catch(()=>null);if(r(`manifest${d}`),!u.ok)throw new Error(`HTTP ${u.status} ${w?.error??""}`);if(w?.ok){for(const[h,p]of Object.entries(w.ms??{}))n[`server.${h}`]=p;break}if(d===2||!Array.isArray(w?.missing))throw new Error(`the server still lacks ${w?.missing?.length??"?"} chunks`);const m=new Set(w.missing);for(const h of a){if(!m.delete(h.hash))continue;const p=await fetch(`/__editor/blender-document-chunk?${c}&hash=${h.hash}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o.subarray(h.start,h.end)])});if(!p.ok)throw new Error(`HTTP ${p.status} ${await p.text().catch(()=>"")}`);i+=h.end-h.start}r(`send${d}`)}}catch(a){throw new Error(`The Blender document ${e} was not written to the project: ${B(a)}`)}return x(!1),$({op:"document-saving",document:e,note:null}),k("log",`@@VOLTER-DOCUMENT ${JSON.stringify({path:e,bytes:o.length,sent:i,ms:n})}`),!0}async function Q(e){if(!f||!A||E===null)throw new Error("The Blender session holds no document to reopen");const n=`${A}/${E}`;g.delete(n);try{await f.files.unlink(n)}catch{}await L(f.files,A);const t=g.get(n)?.host;if(t===void 0)throw new Error(`${E} could not be read from the project`);e&&(await f.files.writeFile(n,e),g.set(n,{host:t,engine:await se(f.files,n)})),await f.request({op:"reopen-document"}),x(e!==void 0)}async function Le(e,n){const t={engine:null},r=await be({project:e,log:k,ask:async({frame:o,hold:i,mesh:a,image:c,piece:l,present:d,capture:u,saveDue:w,checkpoint:m,evaluation:h})=>{if(typeof m=="string")return await v?.(m),{};if(!t.engine)throw new Error("The Blender session presented before it started");if(w&&E!==null){const b=o?.revision;(!W||typeof b=="number"&&b!==X)&&(typeof b=="number"&&(X=b),x(!0))}const p=await t.engine.readArena();if(i!==void 0){const b=i;return S={...h?{evaluation:h}:{},session:b.session,revision:b.revision,columns:await Ne(p,i),meshes:new Map,images:new Map},await J({op:"stage",evaluation:h,session:b.session,revision:b.revision}),{}}if(a!==void 0||c!==void 0){if(!S)throw new Error(`The Blender session sent ${a??c} before its frame`);const b=l?.encodedPath;let O;if(c!==void 0&&typeof b=="string"){const{encodedPath:z,...K}=l,F=(await t.engine.files.readFile(b)).slice(),ae=new Uint8Array(await crypto.subtle.digest("SHA-256",F)),ce=Array.from(ae,de=>de.toString(16).padStart(2,"0")).join("");O={typed:{...K,encoded:F},description:{...K,encoded:{dtype:"u8",length:F.length,sha256:ce}}}}else O={typed:U(p,l),description:await D(p,l)};if(await J({op:"stage",evaluation:S.evaluation,session:S.session,revision:S.revision,...a!==void 0?{mesh:a}:{image:c},piece:O.typed}),a!==void 0){const z=O.typed;S.meshes.set(a,{typed:{revision:z.revision,unchanged:!0},description:O.description})}else S.images.set(c,{typed:void 0,description:O.description});return{}}let j,_;if(d){if(!S)throw new Error("The Blender session presented a frame it never sent");({typed:j,description:_}=xe(S,o)),S=null}else j=U(p,o),_=await D(p,o);const P=await Re(j,_,u);return{...typeof P.capture=="object"&&P.capture!==null?P.capture:{},..."held"in P?{held:P.held}:{}}}});if(t.engine=r,await v?.("engine-ready"),f=r,n){const i=(await L(r.files,e)).find(a=>a.startsWith("The project's files are not readable")||a.startsWith(`${n} `));if(i)throw new Error(`${n} could not be copied into Blender, so it cannot be opened: ${i}`)}await v?.("project-imported");const s=await r.request({op:"start",project:e,...n?{document:n}:{}});return n&&(E=n),T={sceneInfo:async()=>JSON.stringify(await r.request({op:"scene-info"}),null,2),objectInfo:async o=>JSON.stringify(await r.request({op:"object-info",name:o}),null,2),screenshotView:async o=>(await r.request({op:"present",capture:{size:o}}),JSON.stringify({view:{size:o}}))},{...s,engine:"blender-wasm",skew:r.skew,bootMs:Math.round(r.bootMs),releasedPayloadMB:r.releasedPayloadBytes===null?null:Math.round(r.releasedPayloadBytes/1048576)}}async function Ie(){const e="/__editor/blender-wasm/status";try{const n=await R(e,"fetch initial status",()=>fetch(e));return n.ok?await R(e,"decode initial status JSON",()=>n.json()):{available:!1,missing:[`${e}: HTTP ${n.status}`]}}catch(n){return{available:!1,missing:[String(n)]}}}function H(e){return/^[A-Za-z]:[\\/]/.test(e)?`/${e.replaceAll("\\","/")}`:e}async function _e(e,n){if(T)throw new Error("The Blender session is already started");const t=H(e);if(!t.startsWith("/"))throw new Error("The Blender session needs the project's absolute path");if(n!==void 0&&!oe(n))throw new Error(`The Blender document must be a project-relative .blend path with no traversal (models/model.blend); got ${JSON.stringify(n)}`);const r=await Ie();if(!r.available)throw new Error(`Headless Blender is not served by this editor, so there is no modeling engine: ${r.missing.join("; ")}. The engine is Blender compiled to WebAssembly (packages/blender-engine/wasm, or the directory VOLTER_BLENDER_WASM_DIR names); nothing stands in for it.`);return A=t,Le(t,n)}function oe(e){return!e.endsWith(".blend")||e.startsWith("/")||e.includes("\\")?!1:e.split("/").every(t=>t!==""&&t!=="."&&t!=="..")}const q=new Set;function C(e){q.has(e)||(q.add(e),k("error",e))}async function Fe(e){const n=i=>{const a=`The project's files are not readable from Python: ${i}`;return C(a),a};let t;try{t=await fetch("/__editor/blender-project-index")}catch(i){return n(String(i))}if(!t.ok)return n(`/__editor/blender-project-index answered ${t.status}`);let r;try{if(r=await t.json(),typeof r?.root!="string"||!Array.isArray(r.files))return n("invalid project index")}catch(i){return n(String(i))}const{root:s,files:o}=r;return H(s)!==e&&C(`The editor serving this tab has ${s} open, not ${e}; its files are mounted at ${e}, which is where Python is looking.`),o}const g=new Map;async function se(e,n){const t=await e.stat(n);return t?`${t.size}:${t.mtimeMs}`:""}async function L(e,n){const t=await Fe(n);if(typeof t=="string")return[t];const r=[],s=new Set(t.map(o=>`${n}/${o.path}`));for(const o of[...g.keys()])if(!s.has(o)){try{await e.unlink(o)}catch{}g.delete(o)}for(const o of t){const i=`${n}/${o.path}`,a=`${o.size}:${o.mtime}`;if(g.get(i)?.host===a||!g.has(i)&&await e.stat(i)!==null)continue;const c=await fetch(`/__editor/blender-project-file?path=${encodeURIComponent(o.path)}`);if(!c.ok){C(`${o.path}: HTTP ${c.status}`),r.push(`${o.path} (the session answered HTTP ${c.status})`);continue}const l=Number(c.headers.get("content-length")),d=c.headers.has("content-length")&&Number.isSafeInteger(l)&&l>=0?l:o.size,u=i.slice(0,i.lastIndexOf("/"));u&&await e.mkdirTree(u),e.writeFileStream&&c.body?await e.writeFileStream(i,v?he(c.body,()=>v("file-import")):c.body,d):await e.writeFile(i,new Uint8Array(await c.arrayBuffer())),g.set(i,{host:a,engine:await se(e,i)})}return r}function Ue(e){if(!e)return"";if("notSaving"in e)return $({op:"document-saving",document:e.from,note:`${e.from} is not being saved because Blender holds another scene. Save this scene as a new .blend inside the project to keep it, or reopen the saved document to return to it.`}),k("warn",e.note),`
|
|
2
|
-
|
|
3
|
-
${e.note}`;if(!e.moved){const t=`Blender now has ${e.outside} open, which is outside the project, so the editor cannot follow it there: this session's document stays ${e.from}, and the model keeps saving to ${e.from}. To move the model to another file, save it inside the project (src/models/<name>.blend).`;return k("warn",t),`
|
|
4
|
-
|
|
5
|
-
${t}`}if(!oe(e.document))throw new Error(`Blender moved its document to ${JSON.stringify(e.document)}, which is not a project .blend path`);$({op:"document-saving",document:e.from,note:null}),E=e.document,x(!0),$({op:"document-moved",from:e.from,document:e.document});const n=`Blender now has ${e.document} open (this code saved or opened it), so the editor follows it: the model saves to ${e.document} from now on, and ${e.from} keeps what it last saved.`;return k("log",`@@VOLTER-DOCUMENT-MOVED ${JSON.stringify({from:e.from,document:e.document})}`),`
|
|
6
|
-
|
|
7
|
-
${n}`}function De(e){return e.length===0?"":`
|
|
8
|
-
|
|
9
|
-
These project files could not be copied into Blender, so this code did not see their current contents: ${e.join("; ")}`}async function Je(e,n){const t=H(n),r=[];if(await e.stat(t)===null)return r;const s=async o=>{let i;try{i=await e.readdir(o)}catch(a){throw new Error(`Blender's files under ${o} could not be listed, so its outputs there cannot be written back: ${String(a)}`)}for(const a of i){if(a==="."||a==="..")continue;const c=`${o.replace(/\/$/,"")}/${a}`,l=await e.stat(c);if(l){if((l.mode&61440)===16384){await s(c);continue}g.get(c)?.engine!==`${l.size}:${l.mtimeMs}`&&r.push({path:c,size:l.size,mtime:l.mtimeMs})}}};return await s(t),r}function ee(e,n){if(v)throw new Error("The current Blender operation must finish first");return N=new ue(async t=>{v=t;const r=performance.now();try{return await n()}finally{v=null,k("log",`@@VOLTER-WORK op=${e} totalMs=${Math.round(performance.now()-r)}`)}}),N.step()}async function ie(e){switch(e.op){case"start":{if(N)throw new Error("The Blender load has already started");return ee("start",()=>_e(e.project,e.document))}case"load-next":if(!N)throw new Error("No Blender load to continue");return N.step(e.token);case"present-result":{const r=M.get(e.id);M.delete(e.id),r&&(e.error?r.reject(new Error(e.error)):r.resolve({...e.capture===void 0?{}:{capture:e.capture},..."held"in e?{held:e.held}:{}}));return}}if(v)throw new Error("The Blender load must finish before another command");if(!T||!A||!f)throw new Error("The Blender session has not started");const n=f.files,t=f.request.bind(f);switch(e.op){case"flush-document":return W?{saved:await Me()}:{saved:!1};case"snapshot-document":{if(E===null)throw new Error("The Blender session holds no document");const r=await re(E,()=>{});if(r===null)throw new Error(`Blender holds another file's model, not ${E}`);return r.bytes}case"revert-document":await Q();return;case"restore-document":await Q(e.bytes);return;case"history-begin":case"history-end":return t({op:e.op});case"history-step":return t({op:"history-step",token:e.token,direction:e.direction});case"execute":{const r=De(await L(n,A)),s=await t({op:"execute",code:e.code,history:e.history??!0,label:e.label??"Blender Python"});return(s.error?`Error executing code: ${s.error}`:`Code executed successfully: ${s.result}`)+r+Ue(s.document)}case"present":return ee("present",()=>t({op:"present"}));case"native-preview":return t({op:"native-preview",width:e.width,height:e.height,samples:e.samples,...e.camera===void 0?{}:{camera:e.camera}});case"list-files-snapshot":{const r=await t({op:"document-info"});return{entries:await Je(n,e.path),document:r}}case"scene-info":return T.sceneInfo();case"object-info":return T.objectInfo(e.name);case"rna":return t({op:"rna",path:e.path,...e.names===void 0?{}:{names:e.names}});case"rna-context":return t({op:"rna-context",...e.object===void 0?{}:{object:e.object},...e.collection===void 0?{}:{collection:e.collection}});case"view-shading":return t({op:"view-shading",shading:e.shading});case"rna-set":return t({op:"rna-set",history:e.history!==!1,path:e.path,property:e.property,value:e.value,...e.index===void 0?{}:{index:e.index}});case"outliner":return t({op:"outliner",...e.selected===void 0?{}:{selected:[...e.selected]}});case"node-tree":return t({op:"node-tree",...e.path===void 0?{}:{path:e.path},...e.material===void 0?{}:{material:e.material}});case"uv-layout":return t({op:"uv-layout",...e.object===void 0?{}:{object:e.object},...e.uvLayer===void 0?{}:{uvLayer:e.uvLayer}});case"action-clip":return t({op:"action-clip",...e.object===void 0?{}:{object:e.object},...e.bake===void 0?{}:{bake:e.bake},...e.action===void 0?{}:{action:e.action},...e.summary===void 0?{}:{summary:e.summary}});case"scene-movie":return t({op:"scene-movie"});case"sound-scene":return t({op:"sound-scene",first:e.first,last:e.last});case"gltf-export":return t({op:"gltf-export",kind:e.kind,force:e.force===!0,...e.previous?{previous:e.previous}:{},...e.blendSha256?{blendSha256:e.blendSha256}:{},...e.luts?{luts:e.luts}:{}});case"run-script":{const r=await L(n,A),s=await t({op:"run-script",source:e.source,args:e.args,dir:e.dir}),o=[];for(const i of s.files)o.push({path:i,bytes:(await n.readFile(`${e.dir}/${i}`)).slice()}),await n.unlink(`${e.dir}/${i}`);return{output:s.output,error:s.error,files:o,unstaged:r}}case"asset-library":return t({op:"asset-library",library:e.library});case"outliner-set":return t({op:"outliner-set",path:e.path,column:e.column,value:e.value});case"screenshot-view":return JSON.parse(await T.screenshotView(e.maxSize));case"read-file":return n.readFile(e.path);case"write-file":{const r=e.path.slice(0,e.path.lastIndexOf("/"));r&&await n.mkdirTree(r),await n.writeFile(e.path,e.bytes),g.delete(e.path);return}}throw new Error(`Unknown Blender worker request ${e.op}`)}function V(){if(!f)return;const e=f.memoryBytes();e!==null&&$({op:"memory",bytes:e})}self.addEventListener("error",V);self.onmessage=e=>{const n=e.data;if(n.op==="present-result"){ie(n);return}Pe(()=>We(n))};const Ce=5e3;async function We(e){const n=setInterval(V,Ce);try{await He(e)}finally{clearInterval(n)}}async function He(e){try{const n=await ie(e);await te(),$({id:e.id,result:n})}catch(n){let t=B(n);try{await te()}catch(r){t+=`
|
|
10
|
-
Unable to deliver Blender history: ${B(r)}`}$({id:e.id,error:t})}V()}async function te(){if(v||!f||!T)return;const e=await f.request({op:"history-events"});e.length&&$({op:"history",entries:e})}export{ne as A,Ke as P,y as S,ye as a,ze as b,Ge as c,R as d,he as e,Ye as o,$e as s};
|
package/src/contributions.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module 'volter:composition' {
|
|
2
|
-
/** The product's id: its package name's last segment (`@volter/cyclotron` → `cyclotron`). */
|
|
3
|
-
export const productId: string;
|
|
4
|
-
/** `package.json#contributes.volter.product.composes`, each package's declared contributions. */
|
|
5
|
-
const packages: Readonly<
|
|
6
|
-
Record<string, readonly { readonly entryPath: string; readonly load: () => Promise<unknown> }[]>
|
|
7
|
-
>;
|
|
8
|
-
export default packages;
|
|
9
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The game's client, a fiber app: its level (levels/GroundLevel.tsx) and the players' characters
|
|
3
|
-
* (client/characters.tsx) inside `<Canvas>` and Rapier's `<Physics>`, and beside it the HUD, the player list and the
|
|
4
|
-
* chat (client/chat.tsx). It joins the game's room with Colyseus's own React hook (`useRoom`), which leaves the room as
|
|
5
|
-
* the app unmounts, and hands that room to each part that reads it, std's hooks among them (`usePlayers(room)`). This
|
|
6
|
-
* file is the game's: change it.
|
|
7
|
-
*/
|
|
8
|
-
import { Suspense } from 'react';
|
|
9
|
-
import { Client } from '@colyseus/sdk';
|
|
10
|
-
import { useRoom } from '@colyseus/react';
|
|
11
|
-
import { KeyboardControls } from '@react-three/drei';
|
|
12
|
-
import { Canvas } from '@react-three/fiber';
|
|
13
|
-
import { Physics } from '@react-three/rapier';
|
|
14
|
-
import { GamepadControls, TouchControls } from '@volter-ai/std/characters/client';
|
|
15
|
-
import { groundCanvas } from '../levels/ground.canvas.ts';
|
|
16
|
-
import { GroundEnvironment } from '../levels/GroundEnvironment.tsx';
|
|
17
|
-
import { GroundLevel } from '../levels/GroundLevel.tsx';
|
|
18
|
-
import { GameState } from '../shared/state.ts';
|
|
19
|
-
import { Characters } from './characters.tsx';
|
|
20
|
-
import { CHARACTER_KEYS } from './keys.ts';
|
|
21
|
-
import { Chat, PlayerList } from './chat.tsx';
|
|
22
|
-
import { Hud } from './hud.tsx';
|
|
23
|
-
|
|
24
|
-
/** The game's server: the page's own (std's page has set its network launch before this script runs). */
|
|
25
|
-
const client = new Client();
|
|
26
|
-
|
|
27
|
-
/** The game: the world, and the HUD over it. */
|
|
28
|
-
export function App() {
|
|
29
|
-
const { room, error } = useRoom(() => client.joinOrCreate('game', {}, GameState));
|
|
30
|
-
// (a join that fails is the app's error, thrown as it renders, so React reports it)
|
|
31
|
-
if (error !== undefined) throw error;
|
|
32
|
-
return (
|
|
33
|
-
<KeyboardControls map={CHARACTER_KEYS}>
|
|
34
|
-
<Canvas {...groundCanvas} camera={{ fov: 60, position: [0, 6, 12] }}>
|
|
35
|
-
<Suspense fallback={null}>
|
|
36
|
-
<GroundEnvironment />
|
|
37
|
-
</Suspense>
|
|
38
|
-
<Suspense fallback={null}>
|
|
39
|
-
<Physics>
|
|
40
|
-
<GroundLevel />
|
|
41
|
-
<Characters room={room} />
|
|
42
|
-
</Physics>
|
|
43
|
-
</Suspense>
|
|
44
|
-
</Canvas>
|
|
45
|
-
<GamepadControls map={CHARACTER_KEYS} joystick />
|
|
46
|
-
<TouchControls map={CHARACTER_KEYS} />
|
|
47
|
-
<Hud room={room} />
|
|
48
|
-
<PlayerList room={room} />
|
|
49
|
-
<Chat room={room} />
|
|
50
|
-
</KeyboardControls>
|
|
51
|
-
);
|
|
52
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GroundEnvironment: levels/ground.glb's World, its sky and its fog, written by std level (std-dev): the
|
|
3
|
-
* client's alone (its sky can need WebGL), beside <GroundLevel /> in the game's <Canvas>.
|
|
4
|
-
* Export it again when the .blend changes; edit the game's code, not this file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/** The level's World: its sky and its fog, three.js's scene's own (`background`, `environment`, `fog`). */
|
|
8
|
-
export function GroundEnvironment() {
|
|
9
|
-
return (
|
|
10
|
-
<>
|
|
11
|
-
<color attach="background" args={["#bcd7f5"]} />
|
|
12
|
-
<ambientLight color="#bcd7f5" intensity={3.1416} />
|
|
13
|
-
</>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GroundLevel: levels/ground.glb as a component, written by std level (std-dev) as gltfjsx writes one.
|
|
3
|
-
* Its bodies are react-three-rapier's (from the Blender file's Rigid Body panel), its markers and its sun std's (its
|
|
4
|
-
* `ref={stdSun}`: std fits its shadow to the view, over any shadow-camera props added to it); pure, rendering from
|
|
5
|
-
* its props alone.
|
|
6
|
-
* Its sky and fog are GroundEnvironment (./GroundEnvironment), the client's alone: the game's client composes both in its
|
|
7
|
-
* <Canvas {...groundCanvas}> (./ground.canvas), <GroundEnvironment /> and <Physics><GroundLevel /></Physics>.
|
|
8
|
-
* Export it again when the .blend changes; edit the game's code, not this file.
|
|
9
|
-
*/
|
|
10
|
-
import { useMemo } from 'react';
|
|
11
|
-
import type * as THREE from 'three';
|
|
12
|
-
import { useGLTF } from '@react-three/drei';
|
|
13
|
-
import { RigidBody } from '@react-three/rapier';
|
|
14
|
-
import { SpawnPoint, stdSun } from '@volter-ai/std/level/client';
|
|
15
|
-
import groundUrl from './ground.glb?url';
|
|
16
|
-
|
|
17
|
-
/** The glb's nodes and materials this component reads, typed as gltfjsx's `--types` types them. */
|
|
18
|
-
type GLTFResult = ReturnType<typeof useGLTF<string>> & { nodes: { Floor: THREE.Mesh; Sun: THREE.DirectionalLight }; materials: { Grass: THREE.Material } };
|
|
19
|
-
|
|
20
|
-
/** levels/ground.glb's scene: its meshes, lights and markers, its bodies around the nodes that collide. */
|
|
21
|
-
export function GroundLevel(props: { position?: [number, number, number]; rotation?: [number, number, number] }) {
|
|
22
|
-
const { nodes, materials } = useGLTF(groundUrl) as GLTFResult;
|
|
23
|
-
const targets = useMemo(() => ({ "Sun": nodes.Sun.target.clone() }), [nodes]);
|
|
24
|
-
return (
|
|
25
|
-
<group name="GroundLevel" {...props}>
|
|
26
|
-
<RigidBody type="fixed" colliders="cuboid">
|
|
27
|
-
<mesh name="Floor" geometry={nodes.Floor.geometry} material={materials.Grass} castShadow receiveShadow position={[0, -0.5, 0]} />
|
|
28
|
-
</RigidBody>
|
|
29
|
-
<SpawnPoint name="Spawn" position={[0, 1, 0]} />
|
|
30
|
-
<directionalLight name="Sun" intensity={3} color="#ffffff" position={[10, 20, 8]} rotation={[-1.19029, 0.43463, 0.81106]} target={targets.Sun} ref={stdSun} castShadow shadow-mapSize={[2048, 2048]} shadow-bias={-0.0005}>
|
|
31
|
-
<primitive object={targets.Sun} position={[0, 0, -1]} />
|
|
32
|
-
</directionalLight>
|
|
33
|
-
</group>
|
|
34
|
-
);
|
|
35
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* levels/ground.glb's <Canvas> settings, from its Blender file's Color Management (the Standard view transform, exposure
|
|
3
|
-
* 0) and render settings (shadows): `<Canvas {...groundCanvas}>`. Written by std level
|
|
4
|
-
* (std-dev). Its renderer's shader check is std's, set as the canvas is made (`stdShaderChecks`): a dev run's,
|
|
5
|
-
* a published page's off, as three advises for production.
|
|
6
|
-
*/
|
|
7
|
-
import { NoToneMapping } from 'three';
|
|
8
|
-
import { stdShaderChecks } from '@volter-ai/std/level/client';
|
|
9
|
-
|
|
10
|
-
/** The <Canvas> props that draw levels/ground.glb as its Blender file renders it. */
|
|
11
|
-
export const groundCanvas = { gl: { toneMapping: NoToneMapping, toneMappingExposure: 1 }, shadows: 'percentage' as const, onCreated: stdShaderChecks };
|
|
Binary file
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
#
|
|
3
|
-
# THIS FILE IS GPL, AND THE REST OF YOUR PROJECT IS NOT.
|
|
4
|
-
#
|
|
5
|
-
# It drives `bpy`, Blender's Python API. The Blender Foundation's stated
|
|
6
|
-
# position — their licence page, under "Add-ons (Python scripts)" — is that
|
|
7
|
-
# the API "is an integral part of the software" and that the GPL "therefore
|
|
8
|
-
# requires that such scripts (if published) are being shared under a GPL
|
|
9
|
-
# compliant license". So a bpy script is a derivative work of Blender, and
|
|
10
|
-
# this one is licensed GNU General Public License version 3 or later,
|
|
11
|
-
# exercising Blender's own "or later".
|
|
12
|
-
#
|
|
13
|
-
# WHAT THIS DOES NOT TOUCH. `ground.blend` beside this file is YOURS, and so
|
|
14
|
-
# is anything you export from it — glTF, GLB, renders, the level's code std
|
|
15
|
-
# writes. That is the Foundation's position too, on the same page under "Your
|
|
16
|
-
# Artwork": what you make with Blender is your sole property, "including the
|
|
17
|
-
# .blend files and other data files Blender can write". This licence reaches
|
|
18
|
-
# this script and nothing else.
|
|
19
|
-
#
|
|
20
|
-
# If you would rather not carry it: delete this file. The `.blend` is the
|
|
21
|
-
# document — this is only the recorded source of how it was made — and
|
|
22
|
-
# nothing in the project reads this script at runtime. If you write your own
|
|
23
|
-
# bpy scripts, the Foundation's position applies to them on the same terms;
|
|
24
|
-
# it is not a rule of ours and is not ours to waive, because the copyright in
|
|
25
|
-
# Blender is Blender's authors'.
|
|
26
|
-
#
|
|
27
|
-
# Copyright 2026 Volter AI, Inc.
|
|
28
|
-
|
|
29
|
-
"""The starter level — the bpy that made `ground.blend`, and its SOURCE.
|
|
30
|
-
|
|
31
|
-
A level is a Blender file in the game's `levels/` folder: `ground.blend` is
|
|
32
|
-
the document the editor opens, and this is the script that authored it. Each
|
|
33
|
-
save of it in the editor runs std's level export, which writes the level's
|
|
34
|
-
code beside it (`ground.glb`, `GroundLevel.tsx`, `GroundEnvironment.tsx`,
|
|
35
|
-
`ground.canvas.ts`): `<GroundLevel>` is what the game's client draws. Outside
|
|
36
|
-
the editor, the same export is std's own command:
|
|
37
|
-
|
|
38
|
-
npx std level levels/ground.blend levels/ground.glb
|
|
39
|
-
|
|
40
|
-
What it holds, in the terms std's export reads (std's guide, "Levels"):
|
|
41
|
-
|
|
42
|
-
- `Floor`: the ground, 40 m by 40 m and 1 m thick, its top at 0, with a
|
|
43
|
-
passive Rigid Body of shape Box (a fixed `cuboid` collider).
|
|
44
|
-
- `Sun`: a sun casting shadows, aimed at the middle of the ground (std's
|
|
45
|
-
`stdSun`, which fits its shadow to the view).
|
|
46
|
-
- The World's colour: the sky's, and the scene's ambient light.
|
|
47
|
-
- `Spawn`: where the players come in, 1 m up, an instance of the collection
|
|
48
|
-
named `SpawnPoint` (std's `<SpawnPoint>` marker).
|
|
49
|
-
- Color Management's Standard view transform: three.js's own, so the level
|
|
50
|
-
needs no grading LUT.
|
|
51
|
-
|
|
52
|
-
Run it headless to make the file again (Blender 5.2):
|
|
53
|
-
|
|
54
|
-
blender -b --factory-startup --python levels/ground.py
|
|
55
|
-
|
|
56
|
-
or through the session's Blender in the editor, which saves the open document
|
|
57
|
-
about a second after the last call.
|
|
58
|
-
|
|
59
|
-
Coordinates are metres, Z is up (Blender's), and the exporter converts to the
|
|
60
|
-
game's Y-up on the way to glTF.
|
|
61
|
-
"""
|
|
62
|
-
|
|
63
|
-
import os
|
|
64
|
-
|
|
65
|
-
import bpy
|
|
66
|
-
from mathutils import Vector
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def srgb(hex_colour: str) -> tuple[float, float, float, float]:
|
|
70
|
-
"""A CSS colour as Blender's linear RGBA."""
|
|
71
|
-
def linear(c: float) -> float:
|
|
72
|
-
return c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055) ** 2.4
|
|
73
|
-
value = hex_colour.lstrip("#")
|
|
74
|
-
r, g, b = (int(value[i:i + 2], 16) / 255 for i in (0, 2, 4))
|
|
75
|
-
return (linear(r), linear(g), linear(b), 1.0)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
scene = bpy.context.scene
|
|
79
|
-
|
|
80
|
-
# THE LEVEL HOLDS THE LEVEL: the factory startup's cube, light and camera go,
|
|
81
|
-
# and so does whatever an earlier run made.
|
|
82
|
-
for obj in list(bpy.data.objects):
|
|
83
|
-
bpy.data.objects.remove(obj, do_unlink=True)
|
|
84
|
-
for data in (bpy.data.meshes, bpy.data.materials, bpy.data.lights, bpy.data.cameras):
|
|
85
|
-
for block in list(data):
|
|
86
|
-
data.remove(block)
|
|
87
|
-
for collection in list(bpy.data.collections):
|
|
88
|
-
bpy.data.collections.remove(collection)
|
|
89
|
-
|
|
90
|
-
# THE GROUND: a 40 m square, 1 m thick, its top at 0, a fixed body.
|
|
91
|
-
bpy.ops.mesh.primitive_cube_add(size=1.0, location=(0.0, 0.0, -0.5))
|
|
92
|
-
floor = bpy.context.active_object
|
|
93
|
-
floor.name = "Floor"
|
|
94
|
-
floor.data.name = "Floor"
|
|
95
|
-
floor.scale = (40.0, 40.0, 1.0)
|
|
96
|
-
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
|
|
97
|
-
grass = bpy.data.materials.new(name="Grass")
|
|
98
|
-
grass.use_nodes = True
|
|
99
|
-
principled = grass.node_tree.nodes["Principled BSDF"]
|
|
100
|
-
principled.inputs["Base Color"].default_value = srgb("#6a994e")
|
|
101
|
-
principled.inputs["Roughness"].default_value = 1.0
|
|
102
|
-
floor.data.materials.append(grass)
|
|
103
|
-
bpy.ops.rigidbody.object_add()
|
|
104
|
-
floor.rigid_body.type = "PASSIVE"
|
|
105
|
-
floor.rigid_body.collision_shape = "BOX"
|
|
106
|
-
|
|
107
|
-
# THE SUN: three's (10, 20, 8), Y up, is Blender's (10, -8, 20), aimed at the
|
|
108
|
-
# ground's middle; it casts shadows.
|
|
109
|
-
sun_data = bpy.data.lights.new(name="Sun", type="SUN")
|
|
110
|
-
sun_data.energy = 3.0
|
|
111
|
-
sun_data.use_shadow = True
|
|
112
|
-
sun = bpy.data.objects.new("Sun", sun_data)
|
|
113
|
-
scene.collection.objects.link(sun)
|
|
114
|
-
sun.location = (10.0, -8.0, 20.0)
|
|
115
|
-
sun.rotation_euler = (Vector((0.0, 0.0, 0.0)) - sun.location).to_track_quat("-Z", "Y").to_euler()
|
|
116
|
-
|
|
117
|
-
# THE WORLD: the sky's colour, which also lights the scene.
|
|
118
|
-
world = scene.world or bpy.data.worlds.new("World")
|
|
119
|
-
scene.world = world
|
|
120
|
-
world.use_nodes = True
|
|
121
|
-
background = world.node_tree.nodes["Background"]
|
|
122
|
-
background.inputs["Color"].default_value = srgb("#bcd7f5")
|
|
123
|
-
background.inputs["Strength"].default_value = 1.0
|
|
124
|
-
|
|
125
|
-
# WHERE THE PLAYERS COME IN: an instance of the collection named SpawnPoint,
|
|
126
|
-
# std's marker, 1 m above the ground. The collection holds nothing and is in
|
|
127
|
-
# no scene: only its instance is the level's.
|
|
128
|
-
marker = bpy.data.collections.new("SpawnPoint")
|
|
129
|
-
spawn = bpy.data.objects.new("Spawn", None)
|
|
130
|
-
spawn.instance_type = "COLLECTION"
|
|
131
|
-
spawn.instance_collection = marker
|
|
132
|
-
spawn.location = (0.0, 0.0, 1.0)
|
|
133
|
-
scene.collection.objects.link(spawn)
|
|
134
|
-
|
|
135
|
-
# THREE'S OWN VIEW: the Standard view transform, so the level draws with no
|
|
136
|
-
# grading LUT.
|
|
137
|
-
scene.view_settings.view_transform = "Standard"
|
|
138
|
-
scene.view_settings.look = "None"
|
|
139
|
-
|
|
140
|
-
# Headless, with no file open, the level is written beside this script.
|
|
141
|
-
if not bpy.data.filepath and "__file__" in globals():
|
|
142
|
-
bpy.ops.wm.save_as_mainfile(filepath=os.path.join(os.path.dirname(os.path.abspath(__file__)), "ground.blend"))
|