@3dverse/api 0.10.1 → 0.10.2

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.
@@ -124,7 +124,7 @@ export type UploadTask = {
124
124
  * This is only available if the source file is being downloaded.
125
125
  */
126
126
  download_progress?: ConversionProgress;
127
- status: ('waiting' | 'downloading' | 'pending' | 'converting' | 'error' | 'success' | 'rejected') & string;
127
+ status: ('waiting' | 'downloading' | 'extracting' | 'pending' | 'converting' | 'error' | 'success' | 'rejected') & string;
128
128
  conversion_tasks: Array<ConversionTask>;
129
129
  };
130
130
  /**
@@ -343,9 +343,18 @@ export type Cubemap = {
343
343
  export type SessionId = string;
344
344
  /** Client unique identifier */
345
345
  export type ClientId = string;
346
+ /**
347
+ * What an application attaches to a session it creates, or to a client it joins one with, which the service keeps
348
+ * and answers as is, never reading it: up to 32 keys, each a string of up to 512 characters, set once
349
+ */
350
+ export type Metadata = {
351
+ [_additionalproperties_: string]: string;
352
+ };
346
353
  export type Client = {
347
354
  client_id?: ClientId;
348
355
  client_type?: 'user' | 'guest';
356
+ /** What the application which joined with this client attached to it, empty for none */
357
+ metadata?: Metadata;
349
358
  user_id: UserId;
350
359
  /** Used only for debug purposes */
351
360
  username: string;
@@ -379,6 +388,8 @@ export type Session = {
379
388
  is_transient_session: boolean;
380
389
  /** Current clients in session */
381
390
  clients: Array<Client>;
391
+ /** What the application which created the session attached to it, empty for none */
392
+ metadata: Metadata;
382
393
  };
383
394
  /**
384
395
  * - `draft`: the plan is being reviewed, and expires unless confirmed.
@@ -526,9 +537,9 @@ export type SupportedSourceFileFormats = {
526
537
  associated_file_extensions?: {
527
538
  [_additionalproperties_: string]: Array<string>;
528
539
  };
529
- /** Per sub-pipeline breakdown, keyed by converter name. */
540
+ /** Per converter breakdown, keyed by converter name. */
530
541
  converters: {
531
- /** One sub-pipeline of a conversion type. */
542
+ /** One converter of a conversion type. */
532
543
  [_additionalproperties_: string]: {
533
544
  associated_file_extensions?: {
534
545
  [_additionalproperties_: string]: Array<string>;
@@ -548,9 +559,9 @@ export type SupportedSourceFileFormats = {
548
559
  associated_file_extensions?: {
549
560
  [_additionalproperties_: string]: Array<string>;
550
561
  };
551
- /** Per sub-pipeline breakdown, keyed by converter name. */
562
+ /** Per converter breakdown, keyed by converter name. */
552
563
  converters: {
553
- /** One sub-pipeline of a conversion type. */
564
+ /** One converter of a conversion type. */
554
565
  [_additionalproperties_: string]: {
555
566
  associated_file_extensions?: {
556
567
  [_additionalproperties_: string]: Array<string>;
@@ -570,9 +581,9 @@ export type SupportedSourceFileFormats = {
570
581
  associated_file_extensions?: {
571
582
  [_additionalproperties_: string]: Array<string>;
572
583
  };
573
- /** Per sub-pipeline breakdown, keyed by converter name. */
584
+ /** Per converter breakdown, keyed by converter name. */
574
585
  converters: {
575
- /** One sub-pipeline of a conversion type. */
586
+ /** One converter of a conversion type. */
576
587
  [_additionalproperties_: string]: {
577
588
  associated_file_extensions?: {
578
589
  [_additionalproperties_: string]: Array<string>;
@@ -592,9 +603,9 @@ export type SupportedSourceFileFormats = {
592
603
  associated_file_extensions?: {
593
604
  [_additionalproperties_: string]: Array<string>;
594
605
  };
595
- /** Per sub-pipeline breakdown, keyed by converter name. */
606
+ /** Per converter breakdown, keyed by converter name. */
596
607
  converters: {
597
- /** One sub-pipeline of a conversion type. */
608
+ /** One converter of a conversion type. */
598
609
  [_additionalproperties_: string]: {
599
610
  associated_file_extensions?: {
600
611
  [_additionalproperties_: string]: Array<string>;
@@ -614,9 +625,9 @@ export type SupportedSourceFileFormats = {
614
625
  associated_file_extensions?: {
615
626
  [_additionalproperties_: string]: Array<string>;
616
627
  };
617
- /** Per sub-pipeline breakdown, keyed by converter name. */
628
+ /** Per converter breakdown, keyed by converter name. */
618
629
  converters: {
619
- /** One sub-pipeline of a conversion type. */
630
+ /** One converter of a conversion type. */
620
631
  [_additionalproperties_: string]: {
621
632
  associated_file_extensions?: {
622
633
  [_additionalproperties_: string]: Array<string>;
@@ -636,9 +647,9 @@ export type SupportedSourceFileFormats = {
636
647
  associated_file_extensions?: {
637
648
  [_additionalproperties_: string]: Array<string>;
638
649
  };
639
- /** Per sub-pipeline breakdown, keyed by converter name. */
650
+ /** Per converter breakdown, keyed by converter name. */
640
651
  converters: {
641
- /** One sub-pipeline of a conversion type. */
652
+ /** One converter of a conversion type. */
642
653
  [_additionalproperties_: string]: {
643
654
  associated_file_extensions?: {
644
655
  [_additionalproperties_: string]: Array<string>;
@@ -655,78 +666,10 @@ export type SupportedSourceFileFormats = {
655
666
  };
656
667
  /** Conversion task unique identifier */
657
668
  export type ConversionTaskId = string;
658
- /** Data Pipeline unique identifier. */
659
- export type DataPipelineId = string;
660
669
  /** Pipeline unique identifier. A pipeline is an instance of a Data Pipeline. */
661
- export type PipelineId = string;
662
- /** Instance of a Data Pipeline. */
663
- export type Pipeline = {
664
- /** Data Pipeline unique identifier. */
665
- data_pipeline_id: string;
666
- /** Unique identifier of an environment */
667
- environment_id: string;
668
- /** Reason why the pipeline failed or was rejected, if applicable. */
669
- error?: string;
670
- /** Stable, machine-readable category for why a pipeline/job/step failed or was rejected. Meant for programmatic handling (e.g. displaying a localized, user-facing message) — the accompanying `error` field carries the technical detail. `processing_failed` is a catch-all used whenever the failure doesn't fall into one of the other, more specific categories. */
671
- error_code?: 'quota_exceeded' | 'unsupported_file_format' | 'nothing_to_process' | 'enqueue_failed' | 'download_failed' | 'extraction_failed' | 'processing_failed';
672
- /** Date and time when the pipeline was completed, either successfully or with errors. */
673
- finished_at?: string;
674
- /** Folder unique identifier */
675
- folder_id: string;
676
- jobs: Array<{
677
- /** Reason why the job failed, if applicable. */
678
- error?: string;
679
- /** Stable, machine-readable category for why a pipeline/job/step failed or was rejected. Meant for programmatic handling (e.g. displaying a localized, user-facing message) — the accompanying `error` field carries the technical detail. `processing_failed` is a catch-all used whenever the failure doesn't fall into one of the other, more specific categories. */
680
- error_code?: 'quota_exceeded' | 'unsupported_file_format' | 'nothing_to_process' | 'enqueue_failed' | 'download_failed' | 'extraction_failed' | 'processing_failed';
681
- /** Date and time when the job was completed, either successfully or with errors. */
682
- finished_at?: string;
683
- /** Data Pipeline job unique identifier. */
684
- job_id: string;
685
- /** Name of the job. */
686
- name: string;
687
- /** Pipeline unique identifier. A pipeline is an instance of a Data Pipeline. */
688
- pipeline_id: string;
689
- progress: number;
690
- /** Date and time when the job was queued for processing. */
691
- queued_at?: string;
692
- /** Date and time when the job was started. */
693
- started_at?: string;
694
- /** Possible status of a job. */
695
- status: 'created' | 'queued' | 'running' | 'timed-out' | 'failed' | 'succeeded';
696
- steps: Array<{
697
- /** Reason why the step failed, if applicable. */
698
- error?: string;
699
- /** Stable, machine-readable category for why a pipeline/job/step failed or was rejected. Meant for programmatic handling (e.g. displaying a localized, user-facing message) — the accompanying `error` field carries the technical detail. `processing_failed` is a catch-all used whenever the failure doesn't fall into one of the other, more specific categories. */
700
- error_code?: 'quota_exceeded' | 'unsupported_file_format' | 'nothing_to_process' | 'enqueue_failed' | 'download_failed' | 'extraction_failed' | 'processing_failed';
701
- /** Date and time when the step was completed, either successfully or with errors. */
702
- finished_at?: string;
703
- /** Data Pipeline job unique identifier. */
704
- job_id: string;
705
- /** Name of the step. */
706
- name: string;
707
- progress: number;
708
- /** Date and time when the step was started. */
709
- started_at?: string;
710
- /** Possible status of a step. */
711
- status: 'created' | 'skipped' | 'queued' | 'running' | 'timed-out' | 'failed' | 'succeeded';
712
- /** Data Pipeline job step unique identifier. */
713
- step_id: string;
714
- }>;
715
- }>;
716
- /** Name of the pipeline. */
717
- name: string;
718
- /** Pipeline unique identifier. A pipeline is an instance of a Data Pipeline. */
719
- pipeline_id: string;
720
- progress: number;
721
- /** Date and time when the pipeline was accepted by the system and queued for processing. */
722
- queued_at?: string;
723
- /** Possible status of a pipeline. */
724
- status: 'created' | 'downloading' | 'extracting' | 'pending-approval' | 'queued' | 'running' | 'passed-with-errors' | 'failed' | 'rejected' | 'succeeded';
725
- /** Date and time when the pipeline was triggered. */
726
- triggered_at: string;
727
- /** User unique identifier */
728
- user_id: string;
729
- };
670
+ export type DataPipelineId = string;
671
+ /** Import unique identifier, which this service mints: the id of the pipeline running it. */
672
+ export type ImportId = string;
730
673
  export type AssetContainer = 'action_maps' | 'animations' | 'animation_graphs' | 'animation_sequences' | 'animation_sets' | 'collision_geometries' | 'cubemaps' | 'event_maps' | 'materials' | 'meshes' | 'modules' | 'point_clouds' | 'render_graphs' | 'scenes' | 'scripts' | 'shaders' | 'shader_contexts' | 'skeletons' | 'sounds' | 'textures' | 'textures_3d' | 'volume_materials';
731
674
  /** An error the gateway raised, or one of the services it calls answered */
732
675
  export type ServiceError = {
@@ -1161,6 +1104,8 @@ export type AssetDescription = {
1161
1104
  [_additionalproperties_: string]: any;
1162
1105
  };
1163
1106
  };
1107
+ /** Other modules this module uses */
1108
+ moduleDependencies?: Array<string>;
1164
1109
  /** Name of the asset */
1165
1110
  name: string;
1166
1111
  /** Unique identifier for the asset */
@@ -2367,6 +2312,8 @@ export type EditableAssetDescription = {
2367
2312
  [_additionalproperties_: string]: any;
2368
2313
  };
2369
2314
  };
2315
+ /** Other modules this module uses */
2316
+ moduleDependencies?: Array<string>;
2370
2317
  /** Name of the asset */
2371
2318
  name: string;
2372
2319
  /** Unique identifier for the asset */
@@ -2948,200 +2895,766 @@ export type EditableAssetDescription = {
2948
2895
  /** How this buffer is going to be used */
2949
2896
  usage: number;
2950
2897
  };
2951
- /** Categories */
2952
- categories?: Array<string>;
2953
- /** Parameter default value */
2954
- default?: number | boolean | Array<number>;
2955
- /** Description of the parameter, shown by tools. Not read by the engine */
2956
- description?: string;
2957
- /** Identifier of the parameter, kept while its name is, and never given to another: tools follow a parameter across the versions of its shader by it. Not read by the engine */
2958
- id?: number;
2959
- /** Whether this parameter (a render target or buffer) is the resource used to compute the number of dispatched workgroups for a compute shader, i.e. DispatchedGroups = referenceResource.size / workgroupSize (see compute_shader_size_reference's reference_resource) */
2960
- isReferenceResource?: boolean;
2961
- /** For a parameter holding one of a set of values: each value, named and described for tools. Not read by the engine */
2962
- list?: Array<{
2963
- description?: string;
2964
- name: string;
2965
- value: number;
2966
- }>;
2967
- /** Parameter name */
2968
- name: string;
2969
- /** Parameter native type */
2970
- nativeType: 'vec4' | 'vec3' | 'vec2' | 'float' | 'int32_t' | 'texture2d_ref' | 'render_target_index' | 'buffer_reference';
2971
- /** Parameter offset in bytes */
2972
- offset: number;
2973
- /** Additional properties gating this parameter's relevance and/or driving how it's interpreted by tooling (e.g. the material editor) */
2974
- properties?: {
2975
- /** For a parameter of type "texture" or "render_target_index": the underlying pixel type's exact format */
2976
- format?: 'int32' | 'uint32' | 'int64' | 'uint64' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'color3' | 'color4';
2977
- /** For a parameter of type "buffer" or "render_target_index": how the underlying resource is accessed */
2978
- openMode?: 'read' | 'write' | 'readwrite';
2979
- /** Specialization constants gating this parameter's relevance: the key is a constant name, the value is what it must hold for the parameter to be relevant (e.g. shown in the material editor) */
2980
- spec?: {
2981
- [_additionalproperties_: string]: number | boolean;
2982
- };
2898
+ /** Categories */
2899
+ categories?: Array<string>;
2900
+ /** Parameter default value */
2901
+ default?: number | boolean | Array<number>;
2902
+ /** Description of the parameter, shown by tools. Not read by the engine */
2903
+ description?: string;
2904
+ /** Identifier of the parameter, kept while its name is, and never given to another: tools follow a parameter across the versions of its shader by it. Not read by the engine */
2905
+ id?: number;
2906
+ /** Whether this parameter (a render target or buffer) is the resource used to compute the number of dispatched workgroups for a compute shader, i.e. DispatchedGroups = referenceResource.size / workgroupSize (see compute_shader_size_reference's reference_resource) */
2907
+ isReferenceResource?: boolean;
2908
+ /** For a parameter holding one of a set of values: each value, named and described for tools. Not read by the engine */
2909
+ list?: Array<{
2910
+ description?: string;
2911
+ name: string;
2912
+ value: number;
2913
+ }>;
2914
+ /** Parameter name */
2915
+ name: string;
2916
+ /** Parameter native type */
2917
+ nativeType: 'vec4' | 'vec3' | 'vec2' | 'float' | 'int32_t' | 'texture2d_ref' | 'render_target_index' | 'buffer_reference';
2918
+ /** Parameter offset in bytes */
2919
+ offset: number;
2920
+ /** Additional properties gating this parameter's relevance and/or driving how it's interpreted by tooling (e.g. the material editor) */
2921
+ properties?: {
2922
+ /** For a parameter of type "texture" or "render_target_index": the underlying pixel type's exact format */
2923
+ format?: 'int32' | 'uint32' | 'int64' | 'uint64' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'color3' | 'color4';
2924
+ /** For a parameter of type "buffer" or "render_target_index": how the underlying resource is accessed */
2925
+ openMode?: 'read' | 'write' | 'readwrite';
2926
+ /** Specialization constants gating this parameter's relevance: the key is a constant name, the value is what it must hold for the parameter to be relevant (e.g. shown in the material editor) */
2927
+ spec?: {
2928
+ [_additionalproperties_: string]: number | boolean;
2929
+ };
2930
+ };
2931
+ /** Parameter type */
2932
+ type: 'vec4' | 'ivec4' | 'quat' | 'color_alpha' | 'vec3' | 'ivec3' | 'color' | 'vec2' | 'ivec2' | 'float' | 'int' | 'uint' | 'bool' | 'texture' | 'render_target_index' | 'buffer';
2933
+ }>;
2934
+ /** Descriptions of all modules that compose this shader */
2935
+ moduleDescriptions?: Array<{
2936
+ /** Names of the bindings used by this module */
2937
+ bindings?: Array<string>;
2938
+ /** Constants used by this module */
2939
+ constants?: {
2940
+ [_additionalproperties_: string]: Array<number>;
2941
+ };
2942
+ /** Entry point of the shader module */
2943
+ entryPoint?: string;
2944
+ /** Outputs of this shader module (e.g. a fragment shader's color attachments, or the last stage's varying outputs), used to validate the module's compatibility with a render pipeline */
2945
+ outputs?: Array<{
2946
+ /** Output location */
2947
+ location: number;
2948
+ /** Output variable name */
2949
+ name: string;
2950
+ /** Output variable type */
2951
+ type: 'bool' | 'int8' | 'int16' | 'int32' | 'int64' | 'uint8' | 'uint16' | 'uint32' | 'uint64' | 'float16' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'pointer';
2952
+ }>;
2953
+ /** Offset in byte in the shader payload buffer */
2954
+ payloadOffset: number;
2955
+ /** Size in byte of the compiled module */
2956
+ payloadSize: number;
2957
+ /** Push constant members used by this module, used to validate push constant layout compatibility across the pipeline's stages */
2958
+ pushConstants?: Array<{
2959
+ /** Push constant member name */
2960
+ name: string;
2961
+ /** Offset in byte within the push constant block */
2962
+ offset: number;
2963
+ /** Size in byte of the push constant member */
2964
+ size: number;
2965
+ /** Push constant member type */
2966
+ type: 'bool' | 'int8' | 'int16' | 'int32' | 'int64' | 'uint8' | 'uint16' | 'uint32' | 'uint64' | 'float16' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'pointer';
2967
+ }>;
2968
+ /** The shader stage */
2969
+ shaderStage: number;
2970
+ /** Bit mask of the descriptor bindings used by this module, bit N for binding N */
2971
+ usedBindings: number;
2972
+ }>;
2973
+ /** Name of the asset */
2974
+ name: string;
2975
+ /** Data descriptor for render graph node shaders */
2976
+ nodeDataDescriptor?: Array<{
2977
+ /** Additional properties for a parameter of type "buffer": how many elements it holds, the size of each element, and how the buffer is used. Absent for every other parameter type */
2978
+ bufferProperties?: {
2979
+ /** Number of elements in the buffer, or a [x, y] pair of factors applied to the viewport width and height (each rounded up and clamped to a minimum of 1, then multiplied) to compute the element count */
2980
+ elementCount: number | Array<number>;
2981
+ /** Size in bytes of a single element in the buffer. If the buffer is declared as `T *buffer`, this is sizeof(T) */
2982
+ elementSize: number;
2983
+ /** How this buffer is going to be used */
2984
+ usage: number;
2985
+ };
2986
+ /** Categories */
2987
+ categories?: Array<string>;
2988
+ /** Parameter default value */
2989
+ default?: number | boolean | Array<number>;
2990
+ /** Description of the parameter, shown by tools. Not read by the engine */
2991
+ description?: string;
2992
+ /** Identifier of the parameter, kept while its name is, and never given to another: tools follow a parameter across the versions of its shader by it. Not read by the engine */
2993
+ id?: number;
2994
+ /** Whether this parameter (a render target or buffer) is the resource used to compute the number of dispatched workgroups for a compute shader, i.e. DispatchedGroups = referenceResource.size / workgroupSize (see compute_shader_size_reference's reference_resource) */
2995
+ isReferenceResource?: boolean;
2996
+ /** For a parameter holding one of a set of values: each value, named and described for tools. Not read by the engine */
2997
+ list?: Array<{
2998
+ description?: string;
2999
+ name: string;
3000
+ value: number;
3001
+ }>;
3002
+ /** Parameter name */
3003
+ name: string;
3004
+ /** Parameter native type */
3005
+ nativeType: 'vec4' | 'vec3' | 'vec2' | 'float' | 'int32_t' | 'texture2d_ref' | 'render_target_index' | 'buffer_reference';
3006
+ /** Parameter offset in bytes */
3007
+ offset: number;
3008
+ /** Additional properties gating this parameter's relevance and/or driving how it's interpreted by tooling (e.g. the material editor) */
3009
+ properties?: {
3010
+ /** For a parameter of type "texture" or "render_target_index": the underlying pixel type's exact format */
3011
+ format?: 'int32' | 'uint32' | 'int64' | 'uint64' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'color3' | 'color4';
3012
+ /** For a parameter of type "buffer" or "render_target_index": how the underlying resource is accessed */
3013
+ openMode?: 'read' | 'write' | 'readwrite';
3014
+ /** Specialization constants gating this parameter's relevance: the key is a constant name, the value is what it must hold for the parameter to be relevant (e.g. shown in the material editor) */
3015
+ spec?: {
3016
+ [_additionalproperties_: string]: number | boolean;
3017
+ };
3018
+ };
3019
+ /** Parameter type */
3020
+ type: 'vec4' | 'ivec4' | 'quat' | 'color_alpha' | 'vec3' | 'ivec3' | 'color' | 'vec2' | 'ivec2' | 'float' | 'int' | 'uint' | 'bool' | 'texture' | 'render_target_index' | 'buffer';
3021
+ }>;
3022
+ /** Hash of the node data descriptor, used to detect changes in the descriptor */
3023
+ nodeDataDescriptorHash?: number;
3024
+ /** The size in byte of the compiled shader code (accumulated size of all modules) */
3025
+ payloadSize?: number;
3026
+ /** Reference to the shader context associated with this shader. Only present for shaders that use one. */
3027
+ shaderContextRef?: string;
3028
+ /** Vulkan bit mask of all shader stages present in this shader */
3029
+ shaderStages?: number;
3030
+ /** Unique identifier for the asset */
3031
+ uuid: string;
3032
+ /** Vertex description. Only valid when a vertex shader module is present */
3033
+ vertexDescriptor?: Array<{
3034
+ /** Binding number */
3035
+ binding: number;
3036
+ /** Format */
3037
+ format: number;
3038
+ /** Location */
3039
+ location: number;
3040
+ /** Offset */
3041
+ offset: number;
3042
+ /** Semantic */
3043
+ semantic: (1 | 2 | 4 | 8 | 16 | 32) & number;
3044
+ /** Stride between consecutive elements within the buffer */
3045
+ stride: number;
3046
+ }>;
3047
+ } | {
3048
+ /** The albedo look up table */
3049
+ albedoLUT?: Array<{
3050
+ /** The normalized key for this entry */
3051
+ key?: number;
3052
+ /** The value associated to the key */
3053
+ value?: Array<number> | number;
3054
+ }>;
3055
+ /** The metallic look up table */
3056
+ metallicLUT?: Array<{
3057
+ /** The normalized key for this entry */
3058
+ key?: number;
3059
+ /** The value associated to the key */
3060
+ value?: Array<number> | number;
3061
+ }>;
3062
+ /** Name of the asset */
3063
+ name: string;
3064
+ /** The opacity look up table */
3065
+ opacityLUT?: Array<{
3066
+ /** The normalized key for this entry */
3067
+ key?: number;
3068
+ /** The value associated to the key */
3069
+ value?: Array<number> | number;
3070
+ }>;
3071
+ /** The maximum voxel value handled by the material */
3072
+ rangeMax: number;
3073
+ /** The minimum voxel value handled material */
3074
+ rangeMin: number;
3075
+ /** The roughness look up table */
3076
+ roughnessLUT?: Array<{
3077
+ /** The normalized key for this entry */
3078
+ key?: number;
3079
+ /** The value associated to the key */
3080
+ value?: Array<number> | number;
3081
+ }>;
3082
+ /** Unique identifier for the asset */
3083
+ uuid: string;
3084
+ };
3085
+ export type AssetContainerWithPayload = 'animations' | 'animation_graphs' | 'animation_sequences' | 'collision_geometries' | 'meshes' | 'point_clouds' | 'scripts' | 'shaders' | 'skeletons' | 'sounds' | 'textures' | 'textures_3d';
3086
+ export type AssetContainerWithGraph = 'animation_graphs' | 'render_graphs' | 'scripts' | 'shaders';
3087
+ export type AssetContainerWithCode = 'animation_sequences' | 'modules' | 'scripts' | 'shaders';
3088
+ export type AssetContainerExportable = 'meshes' | 'sounds';
3089
+ export type Vector3 = Array<number>;
3090
+ /** An entity of a scene: its components, by class. */
3091
+ export type Entity = {
3092
+ /** Drives skeletal animation using an Animation Graph and Animation Set; animates descendant skinned meshes whose skeletons are compatible with the set. */
3093
+ animation_controller?: {
3094
+ /** Referenced Animation Graph (UUID). */
3095
+ animationGraphRef?: string;
3096
+ /** Referenced Animation Set (UUID). */
3097
+ animationSetRef?: string;
3098
+ /** Autoplay when the session starts. */
3099
+ autoPlay?: boolean;
3100
+ /** Animation Graph input parameters in JSON format. */
3101
+ dataJSON?: {
3102
+ [_additionalproperties_: string]: any;
3103
+ };
3104
+ /** Entity containing the Bone component for the skeleton's root bone. */
3105
+ rootBoneEntityRef?: {
3106
+ linkage: Array<string>;
3107
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3108
+ originalEUID: string;
3109
+ };
3110
+ /** Enable root motion extraction and application to the entity transform. */
3111
+ rootMotionEnabled?: boolean;
3112
+ };
3113
+ /** Controls playback of an Animation Sequence; assigns tracks to entities. */
3114
+ animation_sequence_controller?: {
3115
+ /** Referenced Animation Sequence (UUID). */
3116
+ animationSequenceRef?: string;
3117
+ /** Map from track UUID to assigned entity. */
3118
+ entities?: {
3119
+ /** A reference to an entity: the uuid it was created with, and the uuids of the linkers it was instanced through. */
3120
+ [_additionalproperties_: string]: {
3121
+ linkage: Array<string>;
3122
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3123
+ originalEUID: string;
3124
+ };
3125
+ };
3126
+ /** Loop playback when reaching the stop offset. */
3127
+ loop?: boolean;
3128
+ /** Playback speed multiplier. Negative values play in reverse. */
3129
+ playbackSpeed?: number;
3130
+ /** Normalized start offset [0, 1]. */
3131
+ startOffset?: number;
3132
+ /** Normalized stop offset [0, 1]. When looping, playback wraps to startOffset at this point. */
3133
+ stopOffset?: number;
3134
+ };
3135
+ /** Associates this entity with a bone in a skeleton (for attachments and transforms). */
3136
+ bone?: {
3137
+ /** Zero-based index of this bone within the bound skeleton. */
3138
+ boneIndex?: number;
3139
+ };
3140
+ /** Box geometry. */
3141
+ box_geometry?: {
3142
+ /** Box dimensions (width, height, depth) in meters. */
3143
+ dimension?: Array<number>;
3144
+ /** Local offset of the geometry origin (meters). */
3145
+ offset?: Array<number>;
3146
+ };
3147
+ /** Virtual camera. */
3148
+ camera?: {
3149
+ /** Render Graph input parameters in JSON; schema defined by renderGraphRef. */
3150
+ dataJSON?: {
3151
+ [_additionalproperties_: string]: any;
3152
+ };
3153
+ /** Referenced render graph to use for rendering from this camera. */
3154
+ renderGraphRef?: string;
3155
+ /** Index of the render target to blit/output to. -1 indicates the default target. */
3156
+ renderTargetIndex?: number;
3157
+ };
3158
+ /** Capsule geometry. */
3159
+ capsule_geometry?: {
3160
+ /** Alignment axis of the capsule: 0=X, 1=Y, 2=Z. */
3161
+ axis?: (0 | 1 | 2) & number;
3162
+ /** Height of the cylindrical mid-section (meters). */
3163
+ height?: number;
3164
+ /** Local offset of the geometry origin (meters). */
3165
+ offset?: Array<number>;
3166
+ /** Radius of the hemispherical ends (meters). */
3167
+ radius?: number;
3168
+ };
3169
+ /** Kinematic character controller for collision-constrained movement without a rigid body. Uses tuned collision handling for responsive control. */
3170
+ character_controller?: {
3171
+ /** Collision skin width (meters). */
3172
+ skinWidth?: number;
3173
+ /** Maximum walkable slope (degrees). Slopes steeper than this are not walkable. */
3174
+ slopeLimit?: number;
3175
+ /** Maximum climbable step height. Steps higher than this cannot be climbed automatically. */
3176
+ stepOffset?: number;
3177
+ };
3178
+ /** Reference to a collision geometry asset used by physics. */
3179
+ collision_geometry_ref?: {
3180
+ /** Referenced collision geometry (UUID). */
3181
+ collisionGeometryRef?: string;
3182
+ };
3183
+ /** 6-DoF constraint built on a Joint. Defaults to fixed; selectively unlock translation and rotation on X/Y/Z and configure limits and springs. */
3184
+ constraint?: {
3185
+ /** Linear limit spring damping per axis (N·s/m). */
3186
+ motionLimitSpringDamping?: Array<number>;
3187
+ /** Linear limit spring stiffness per axis (N/m). >0 makes the limit soft (spring-like). */
3188
+ motionLimitSpringStiffness?: Array<number>;
3189
+ /** Lower linear limit per axis (meters). */
3190
+ motionLowerLimit?: Array<number>;
3191
+ /** Upper linear limit per axis (meters). */
3192
+ motionUpperLimit?: Array<number>;
3193
+ /** Swing cone half-angles about Y and Z of the constraint frame (degrees). 0 does not restrict rotation; max 180. Used if either swing axis is limited. */
3194
+ swingLimitAngle?: Array<number>;
3195
+ /** Swing limit spring damping (N·m·s/rad). */
3196
+ swingSpringDamping?: number;
3197
+ /** Swing limit spring stiffness (N·m/rad). >0 makes the limit soft. */
3198
+ swingSpringStiffness?: number;
3199
+ /** Twist angle limits (min,max) around the twist axis (degrees). Range (−360, 360). */
3200
+ twistLimitAngle?: Array<number>;
3201
+ /** Twist limit spring damping (N·m·s/rad). */
3202
+ twistSpringDamping?: number;
3203
+ /** Twist limit spring stiffness (N·m/rad). >0 makes the limit soft. */
3204
+ twistSpringStiffness?: number;
3205
+ /** Unlock motion along/around the specified axes. */
3206
+ unlockedMotion?: number;
3207
+ };
3208
+ /** Drives a Constraint toward target position/orientation and velocities using configurable stiffness, damping, and force limits. */
3209
+ constraint_actuator?: {
3210
+ /** Angular drive damping per axis (N·m·s/rad). */
3211
+ angularDamping?: Array<number>;
3212
+ /** Max angular drive torque/impulse per axis (N·m). −1 = unlimited. */
3213
+ angularForceLimit?: Array<number>;
3214
+ /** Angular drive stiffness per axis (N·m/rad). >0 applies spring torque toward the goal. */
3215
+ angularStiffness?: Array<number>;
3216
+ /** Target angular velocity (rad/s). */
3217
+ angularVelocity?: Array<number>;
3218
+ /** Target angular orientation. */
3219
+ goalOrientation?: Array<number>;
3220
+ /** Target linear position offset (meters). */
3221
+ goalPosition?: Array<number>;
3222
+ /** Linear drive damping per axis (N·s/m). */
3223
+ linearDamping?: Array<number>;
3224
+ /** Max linear drive force/impulse per axis (N). −1 = unlimited. */
3225
+ linearForceLimit?: Array<number>;
3226
+ /** Linear drive stiffness per axis (N/m). >0 applies spring force toward the goal. */
3227
+ linearStiffness?: Array<number>;
3228
+ /** Target linear velocity (m/s). */
3229
+ linearVelocity?: Array<number>;
3230
+ /** Drive type: apply as force or as acceleration. */
3231
+ type?: (0 | 1) & number;
3232
+ };
3233
+ /** Enables culling using a simple analytic shape. Add alongside a geometry component (box, cylinder, plane, sphere). */
3234
+ culling_geometry?: {
3235
+ /** Additive: show elements inside the geometry. Subtractive: show elements outside the geometry. */
3236
+ isAdditive?: boolean;
3237
+ };
3238
+ /** Custom projection lens using an explicit projection matrix. */
3239
+ custom_lens?: {
3240
+ /** Projection matrix mapping view-space to clip-space (cs_from_vs). */
3241
+ cs_from_vs?: Array<number>;
3242
+ };
3243
+ /** Cylinder geometry. */
3244
+ cylinder_geometry?: {
3245
+ /** Alignment axis of the cylinder: 0=X, 1=Y, 2=Z. */
3246
+ axis?: (0 | 1 | 2) & number;
3247
+ /** Height of the cylinder (meters). */
3248
+ height?: number;
3249
+ /** Local offset of the geometry origin (meters). */
3250
+ offset?: Array<number>;
3251
+ /** Radius of the cylinder (meters). */
3252
+ radius?: number;
3253
+ };
3254
+ /** Human-readable name of the entity. */
3255
+ debug_name?: {
3256
+ /** Entity name. */
3257
+ value?: string;
3258
+ };
3259
+ /** Projects a material onto scene surfaces within the projector's box volume. */
3260
+ decal_projector?: {
3261
+ /** Z-index ordering for decal rendering; higher values render on top of lower ones. */
3262
+ zIndex?: number;
3263
+ };
3264
+ /** Scene environment settings, including skybox background and precomputed image-based lighting (IBL). This component is only applied in the scene where this entity lives, it is discarded for subscenes. */
3265
+ environment?: {
3266
+ /** Diffuse irradiance cubemap used for ambient PBR lighting. */
3267
+ irradianceUUID?: string;
3268
+ /** Specular radiance cubemap (prefiltered) used for PBR reflections. */
3269
+ radianceUUID?: string;
3270
+ /** Skybox cubemap used as the scene background (no lighting effect). */
3271
+ skyboxUUID?: string;
3272
+ };
3273
+ /** Unique identifier for the entity. */
3274
+ euid: {
3275
+ /** Unique identifier value. */
3276
+ value: string;
3277
+ };
3278
+ /** Base joint connecting two bodies. By default locks relative position and orientation between constrainer and constrainee. */
3279
+ joint?: {
3280
+ /** Break force threshold (Newtons). */
3281
+ breakForce?: number;
3282
+ /** Break torque threshold (N·m). */
3283
+ breakTorque?: number;
3284
+ /** Entity with a Rigid Body to be constrained. */
3285
+ constrainee?: {
3286
+ linkage: Array<string>;
3287
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3288
+ originalEUID: string;
3289
+ };
3290
+ /** Entity acting as constrainer (rigid/static) or null to constrain to world origin. */
3291
+ constrainer?: {
3292
+ linkage: Array<string>;
3293
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3294
+ originalEUID: string;
3295
+ };
3296
+ /** Enable collision between constrainer and constrainee bodies. */
3297
+ enableCollision?: boolean;
3298
+ };
3299
+ /** Displays an editor-only label in the 3D view. */
3300
+ label?: {
3301
+ /** Camera framing parameters for navigating to the label. */
3302
+ camera?: Array<number>;
3303
+ /** Label description text. */
3304
+ description?: string;
3305
+ /** Camera travel speed (meters/second). */
3306
+ speed?: number;
3307
+ /** Label title text. */
3308
+ title?: string;
3309
+ };
3310
+ /** Records the entity's lineage through linkers and parentage. */
3311
+ lineage?: {
3312
+ /** Ordinal index among siblings (editor-only). */
3313
+ ordinal?: number;
3314
+ /** UUID of this entity's parent (default is root). */
3315
+ parentUUID?: string;
3316
+ };
3317
+ /** Local-space axis-aligned bounding box. */
3318
+ local_aabb?: {
3319
+ /** Local AABB maximum corner (x,y,z). */
3320
+ max?: Array<number>;
3321
+ /** Local AABB minimum corner (x,y,z). */
3322
+ min?: Array<number>;
3323
+ };
3324
+ /** Local transform of the entity (position, orientation, scale). */
3325
+ local_transform?: {
3326
+ /** Local orientation as Euler angles (editor-only). */
3327
+ eulerOrientation?: Array<number>;
3328
+ /** Last global orientation entered by a user as Euler angles (may be invalid; editor-only). */
3329
+ globalEulerOrientation?: Array<number>;
3330
+ /** Local orientation as a quaternion. */
3331
+ orientation?: Array<number>;
3332
+ /** Local position (x, y, z) in meters. */
3333
+ position?: Array<number>;
3334
+ /** Local non-uniform scale (x, y, z). */
3335
+ scale?: Array<number>;
3336
+ };
3337
+ /** Assigns a shader to the entity's mesh and provides its input values and specialization constants. */
3338
+ material?: {
3339
+ /** Specialization constants (JSON); schema defined by shaderRef. */
3340
+ constantsJSON?: {
3341
+ [_additionalproperties_: string]: any;
3342
+ };
3343
+ /** Shader input values (JSON); schema defined by shaderRef. */
3344
+ dataJSON?: {
3345
+ [_additionalproperties_: string]: any;
3346
+ };
3347
+ /** Render both front and back faces (double-sided). */
3348
+ isDoubleSided?: boolean;
3349
+ /** Referenced shader (UUID). */
3350
+ shaderRef?: string;
3351
+ };
3352
+ /** Reference to a material to use for rendering. */
3353
+ material_ref?: {
3354
+ /** Face culling override: 0 = inherit from material, 1 = single-sided, 2 = double-sided. */
3355
+ faceCulling?: (0 | 1 | 2) & number;
3356
+ /** Referenced material (UUID). */
3357
+ value?: string;
3358
+ };
3359
+ /** Displays editor-only measurement annotations in the 3D view. */
3360
+ measure?: {
3361
+ /** Display color for the measurement. */
3362
+ color?: Array<number>;
3363
+ /** Measurement type to display. */
3364
+ type?: (0 | 1 | 2 | 3) & number;
3365
+ };
3366
+ /** Reference to a mesh to render (with submesh selection). */
3367
+ mesh_ref?: {
3368
+ /** Shadow casting mode for this mesh. */
3369
+ shadowCastingMode?: (0 | 1) & number;
3370
+ /** Index of the submesh within the mesh's submesh array. */
3371
+ submeshIndex?: number;
3372
+ /** Referenced mesh (UUID). */
3373
+ value?: string;
3374
+ };
3375
+ /** Contains weights assigned to morph targets of the mesh referred to by the entity's mesh_ref. */
3376
+ morph_targets?: {
3377
+ /** Map from morph target name to weight (commonly 0..1). */
3378
+ weights?: {
3379
+ [_additionalproperties_: string]: number;
3380
+ };
3381
+ };
3382
+ /** Orthographic projection lens with configurable zoom and depth range. */
3383
+ orthographic_lens?: {
3384
+ /** Far clipping plane distance (meters). */
3385
+ zFar?: number;
3386
+ /** Near clipping plane distance (meters). */
3387
+ zNear?: number;
3388
+ /** Zoom factor applied to the orthographic extents (X,Y). 1 = no zoom. */
3389
+ zoomFactor?: Array<number>;
3390
+ };
3391
+ /** Overrides an entity from a subscene: mark for deletion, replace components, or detach specific components. */
3392
+ overrider?: {
3393
+ /** Hashes of components to detach from the overridden entity. */
3394
+ componentsToDetach?: Array<number>;
3395
+ /** Mark the overridden entity as deleted in the composed scene. */
3396
+ deleter?: boolean;
3397
+ /** Target entity to override. */
3398
+ entityRef?: {
3399
+ linkage: Array<string>;
3400
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3401
+ originalEUID: string;
3402
+ };
3403
+ };
3404
+ /** Perspective projection lens with vertical field of view and near/far clipping planes. */
3405
+ perspective_lens?: {
3406
+ /** Far clipping plane distance (meters). Set to 0 for an infinite far plane. */
3407
+ farPlane?: number;
3408
+ /** Vertical field of view angle in degrees. */
3409
+ fovy?: number;
3410
+ /** Near clipping plane distance (meters). */
3411
+ nearPlane?: number;
3412
+ /** Projection center offset for stereoscopic rendering (meters). */
3413
+ offset?: Array<number>;
3414
+ };
3415
+ /** Physical surface properties used for contact: friction, restitution, optional contact modification, and trigger mode. */
3416
+ physics_material?: {
3417
+ /** Applied contact velocity offset when colliding (m/s). Only used if modifyContact is true. */
3418
+ contactVelocity?: Array<number>;
3419
+ /** Dynamic (kinetic) friction coefficient (typically 0..1). If greater than staticFriction, staticFriction is clamped up to match. Effective value is averaged with the other surface. */
3420
+ dynamicFriction?: number;
3421
+ /** Treat associated geometry as a trigger (generates events but no physical response). */
3422
+ isTrigger?: boolean;
3423
+ /** Enable contact modification (applies contactVelocity on collisions). */
3424
+ modifyContact?: boolean;
3425
+ /** Restitution (bounciness) in [0,1]. 0 = no bounce; 1 = perfectly elastic. Effective value is averaged with the other surface. */
3426
+ restitution?: number;
3427
+ /** Static friction coefficient (typically 0..1). 0 feels like ice; higher resists start of motion. Effective value is averaged with the other surface. */
3428
+ staticFriction?: number;
3429
+ };
3430
+ /** Infinite plane geometry. */
3431
+ plane_geometry?: {
3432
+ /** Signed distance from the origin along the plane normal (meters). */
3433
+ distance?: number;
3434
+ /** Unit normal vector of the plane (in local space). */
3435
+ normal?: Array<number>;
3436
+ };
3437
+ /** Reference to a point cloud. */
3438
+ point_cloud_ref?: {
3439
+ /** Referenced point cloud (UUID). */
3440
+ value?: string;
3441
+ };
3442
+ /** Omnidirectional light source with physically based intensity and falloff. Acts as a point light by default; enable isDirectional to emit parallel rays. Attach a Spot Light component to add a cone cutoff. Can optionally drive the atmosphere sun direction. */
3443
+ point_light?: {
3444
+ /** RGB light color in linear space [0-1]. Multiplies intensity. */
3445
+ color?: Array<number>;
3446
+ /** Luminous intensity in candela (cd) for point and spot lights. Illuminance in lux (lx) when isDirectional, above the atmosphere when isSun. */
3447
+ intensity?: number;
3448
+ /** Treat this as a directional light using the entity's orientation; position is ignored. */
3449
+ isDirectional?: boolean;
3450
+ /** Use this light's direction to control the atmosphere sun direction. */
3451
+ isSun?: boolean;
3452
+ /** Distance in meters at which the inverse-square falloff is windowed to zero. 0 for no cutoff. */
3453
+ range?: number;
3454
+ };
3455
+ /** Omnidirectional reflection probe that captures the local environment into a cubemap for specular reflections (IBL). */
3456
+ reflection_probe?: {
3457
+ /** Capture far clip distance (meters). */
3458
+ farDist?: number;
3459
+ /** Capture near clip distance (meters). */
3460
+ nearDist?: number;
3461
+ /** Offset of the probe capture origin relative to the entity position (meters). */
3462
+ offset?: Array<number>;
3463
+ /** Reflection cubemap resolution (pixels per face). Higher values increase detail and cost. */
3464
+ quality?: number;
3465
+ };
3466
+ /** Rigid body parameters for dynamic simulation (mass, damping, limits, CCD, and kinematic/gravity behavior). */
3467
+ rigid_body?: {
3468
+ /** Angular damping coefficient (s^-1). 0 = no damping; must be non-negative. */
3469
+ angularDamping?: number;
3470
+ /** Center of mass relative to the entity's local transform (meters). */
3471
+ centerOfMass?: Array<number>;
3472
+ /** Collision detection mode (CCD). Kinematic bodies do not support Linear/Continuous CCD. */
3473
+ collisionDetection?: (0 | 1 | 2 | 3) & number;
3474
+ /** Treat the rigid body as kinematic (unaffected by forces; driven by animation/app logic). */
3475
+ isKinematic?: boolean;
3476
+ /** Linear damping coefficient (s^-1). 0 = no damping; must be non-negative. */
3477
+ linearDamping?: number;
3478
+ /** Lock motion along/around the specified axes. */
3479
+ lockedAxis?: number;
3480
+ /** Mass (kg). A value of 0 is treated as infinite mass (static). */
3481
+ mass?: number;
3482
+ /** Maximum angular velocity (rad/s). Must be non-negative. */
3483
+ maxAngularVelocity?: number;
3484
+ /** Maximum linear velocity (m/s). Must be non-negative. */
3485
+ maxLinearVelocity?: number;
3486
+ /** Whether the rigid body is affected by gravity. */
3487
+ useGravity?: boolean;
3488
+ };
3489
+ /** Reference to a subscene (linker); used to compose scenes. */
3490
+ scene_ref?: {
3491
+ /** Maximum recursion depth when a scene references itself. */
3492
+ maxRecursionCount?: number;
3493
+ /** Referenced scene (UUID). */
3494
+ value?: string;
3495
+ };
3496
+ /** References a script and supplies its input values. */
3497
+ script_element?: {
3498
+ /** Script input values in JSON; schema defined by scriptRef. */
3499
+ dataJSON?: {
3500
+ [_additionalproperties_: string]: any;
3501
+ };
3502
+ /** Referenced script (UUID). */
3503
+ scriptRef?: string;
3504
+ };
3505
+ /** Holds a set of script elements keyed by UUID. */
3506
+ script_map?: {
3507
+ /** Map of script UUID to script element. */
3508
+ elements?: {
3509
+ /** References a script and supplies its input values. */
3510
+ [_additionalproperties_: string]: {
3511
+ /** Script input values in JSON; schema defined by scriptRef. */
3512
+ dataJSON?: {
3513
+ [_additionalproperties_: string]: any;
3514
+ };
3515
+ /** Referenced script (UUID). */
3516
+ scriptRef?: string;
3517
+ };
3518
+ };
3519
+ };
3520
+ /** Enables a light to cast real-time shadows with configurable map resolution, depth range, and (for directional lights) cascades. */
3521
+ shadow_caster?: {
3522
+ /** Directional lights only: blend/accumulate all cascades to reduce visible transitions between splits. */
3523
+ accumulateShadowCascades?: boolean;
3524
+ /** Depth bias applied during shadow tests to reduce self-shadowing (acne). Increase to mitigate artifacts; too high causes peter-panning. */
3525
+ bias?: number;
3526
+ /** Directional lights only: number of cascades for CSM. 0 = static shadow map, 1–4 = increasing cascade count. */
3527
+ cascadeCount?: (0 | 1 | 2 | 3 | 4) & number;
3528
+ /** Directional lights only: cascade split distribution for CSM. 0 = uniform (linear) splits; 1 = logarithmic (more resolution near the camera). Values in [0,1] blend between the two. */
3529
+ cascadeSplitLambda?: number;
3530
+ /** Shadow camera far clip distance (meters). Use the smallest range that contains casters/receivers. */
3531
+ farDist?: number;
3532
+ /** Shadow camera near clip distance (meters). Tighten to improve depth precision. */
3533
+ nearDist?: number;
3534
+ /** Shadow map resolution (pixels per side). Higher values increase detail at the cost of memory and performance. */
3535
+ quality?: (256 | 512 | 1024 | 2048 | 3072 | 4096 | 6144 | 8192) & number;
3536
+ };
3537
+ /** Reference to a skeleton asset for skinning and animation. */
3538
+ skeleton_ref?: {
3539
+ /** Referenced skeleton (UUID). */
3540
+ value?: string;
3541
+ };
3542
+ /** Reference to a sound asset with playback and spatialization controls. */
3543
+ sound_ref?: {
3544
+ /** Distance attenuation model. */
3545
+ attenuationModel?: (0 | 1 | 2 | 3) & number;
3546
+ /** Rolloff factor for distance attenuation. */
3547
+ attenuationRolloffFactor?: number;
3548
+ /** Autoplay when the simulation starts. */
3549
+ autoPlayOnStart?: boolean;
3550
+ /** Scale factor for the Doppler effect. */
3551
+ dopplerFactor?: number;
3552
+ /** Behavior when the sound becomes inaudible. */
3553
+ inaudibleBehavior?: (0 | 1 | 2) & number;
3554
+ /** Whether the sound loops. */
3555
+ looping?: boolean;
3556
+ /** Distance beyond which the sound is inaudible (meters). */
3557
+ maxDistance?: number;
3558
+ /** Distance at which the sound stays at max volume (meters). */
3559
+ minDistance?: number;
3560
+ /** Stereo pan. −1 = left, 1 = right. */
3561
+ pan?: number;
3562
+ /** Playback speed multiplier (1.0 = normal). */
3563
+ playSpeed?: number;
3564
+ /** Referenced sound (UUID). */
3565
+ value?: string;
3566
+ /** Playback volume [0..1]. */
3567
+ volume?: number;
3568
+ };
3569
+ /** Sphere geometry. */
3570
+ sphere_geometry?: {
3571
+ /** Local offset of the geometry origin (meters). */
3572
+ offset?: Array<number>;
3573
+ /** Radius of the sphere (meters). */
3574
+ radius?: number;
3575
+ };
3576
+ /** Displays an editor-only spline in the 3D view. */
3577
+ spline?: {
3578
+ /** Display color of the curve. */
3579
+ color?: Array<number>;
3580
+ /** Catmull-Rom tension (only when type is Catmull-Rom). */
3581
+ tension?: number;
3582
+ /** Spline interpolation type. */
3583
+ type?: (0 | 1 | 2) & number;
3584
+ };
3585
+ /** Adds a cone cutoff to a light, producing a spotlight. Requires a Point Light component for color/intensity and falloff. */
3586
+ spot_light?: {
3587
+ /** Optional IES photometric profile (2D texture). Modulates emitted intensity by direction; leave empty for uniform distribution. */
3588
+ IESProfile?: string;
3589
+ /** Cone half-angle in degrees, from the axis to the edge. Light falls to zero at the cone edge. */
3590
+ cutoff?: number;
3591
+ };
3592
+ /** Free-form tags used to group and filter entities. */
3593
+ tags?: {
3594
+ /** List of tags applied to this entity. */
3595
+ value?: Array<string>;
3596
+ };
3597
+ /** Vehicle Controller parameters. */
3598
+ vehicle_controller?: {
3599
+ /** The chassis. */
3600
+ chassis?: {
3601
+ linkage: Array<string>;
3602
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3603
+ originalEUID: string;
3604
+ };
3605
+ /** The front left wheel. */
3606
+ frontLeftWheel?: {
3607
+ linkage: Array<string>;
3608
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3609
+ originalEUID: string;
2983
3610
  };
2984
- /** Parameter type */
2985
- type: 'vec4' | 'ivec4' | 'quat' | 'color_alpha' | 'vec3' | 'ivec3' | 'color' | 'vec2' | 'ivec2' | 'float' | 'int' | 'uint' | 'bool' | 'texture' | 'render_target_index' | 'buffer';
2986
- }>;
2987
- /** Descriptions of all modules that compose this shader */
2988
- moduleDescriptions?: Array<{
2989
- /** Names of the bindings used by this module */
2990
- bindings?: Array<string>;
2991
- /** Constants used by this module */
2992
- constants?: {
2993
- [_additionalproperties_: string]: Array<number>;
3611
+ /** The front right wheel. */
3612
+ frontRightWheel?: {
3613
+ linkage: Array<string>;
3614
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3615
+ originalEUID: string;
2994
3616
  };
2995
- /** Entry point of the shader module */
2996
- entryPoint?: string;
2997
- /** Outputs of this shader module (e.g. a fragment shader's color attachments, or the last stage's varying outputs), used to validate the module's compatibility with a render pipeline */
2998
- outputs?: Array<{
2999
- /** Output location */
3000
- location: number;
3001
- /** Output variable name */
3002
- name: string;
3003
- /** Output variable type */
3004
- type: 'bool' | 'int8' | 'int16' | 'int32' | 'int64' | 'uint8' | 'uint16' | 'uint32' | 'uint64' | 'float16' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'pointer';
3005
- }>;
3006
- /** Offset in byte in the shader payload buffer */
3007
- payloadOffset: number;
3008
- /** Size in byte of the compiled module */
3009
- payloadSize: number;
3010
- /** Push constant members used by this module, used to validate push constant layout compatibility across the pipeline's stages */
3011
- pushConstants?: Array<{
3012
- /** Push constant member name */
3013
- name: string;
3014
- /** Offset in byte within the push constant block */
3015
- offset: number;
3016
- /** Size in byte of the push constant member */
3017
- size: number;
3018
- /** Push constant member type */
3019
- type: 'bool' | 'int8' | 'int16' | 'int32' | 'int64' | 'uint8' | 'uint16' | 'uint32' | 'uint64' | 'float16' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'pointer';
3020
- }>;
3021
- /** The shader stage */
3022
- shaderStage: number;
3023
- /** Bit mask of the descriptor bindings used by this module, bit N for binding N */
3024
- usedBindings: number;
3025
- }>;
3026
- /** Name of the asset */
3027
- name: string;
3028
- /** Data descriptor for render graph node shaders */
3029
- nodeDataDescriptor?: Array<{
3030
- /** Additional properties for a parameter of type "buffer": how many elements it holds, the size of each element, and how the buffer is used. Absent for every other parameter type */
3031
- bufferProperties?: {
3032
- /** Number of elements in the buffer, or a [x, y] pair of factors applied to the viewport width and height (each rounded up and clamped to a minimum of 1, then multiplied) to compute the element count */
3033
- elementCount: number | Array<number>;
3034
- /** Size in bytes of a single element in the buffer. If the buffer is declared as `T *buffer`, this is sizeof(T) */
3035
- elementSize: number;
3036
- /** How this buffer is going to be used */
3037
- usage: number;
3617
+ /** The rear left wheel. */
3618
+ rearLeftWheel?: {
3619
+ linkage: Array<string>;
3620
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3621
+ originalEUID: string;
3038
3622
  };
3039
- /** Categories */
3040
- categories?: Array<string>;
3041
- /** Parameter default value */
3042
- default?: number | boolean | Array<number>;
3043
- /** Description of the parameter, shown by tools. Not read by the engine */
3044
- description?: string;
3045
- /** Identifier of the parameter, kept while its name is, and never given to another: tools follow a parameter across the versions of its shader by it. Not read by the engine */
3046
- id?: number;
3047
- /** Whether this parameter (a render target or buffer) is the resource used to compute the number of dispatched workgroups for a compute shader, i.e. DispatchedGroups = referenceResource.size / workgroupSize (see compute_shader_size_reference's reference_resource) */
3048
- isReferenceResource?: boolean;
3049
- /** For a parameter holding one of a set of values: each value, named and described for tools. Not read by the engine */
3050
- list?: Array<{
3051
- description?: string;
3052
- name: string;
3053
- value: number;
3054
- }>;
3055
- /** Parameter name */
3056
- name: string;
3057
- /** Parameter native type */
3058
- nativeType: 'vec4' | 'vec3' | 'vec2' | 'float' | 'int32_t' | 'texture2d_ref' | 'render_target_index' | 'buffer_reference';
3059
- /** Parameter offset in bytes */
3060
- offset: number;
3061
- /** Additional properties gating this parameter's relevance and/or driving how it's interpreted by tooling (e.g. the material editor) */
3062
- properties?: {
3063
- /** For a parameter of type "texture" or "render_target_index": the underlying pixel type's exact format */
3064
- format?: 'int32' | 'uint32' | 'int64' | 'uint64' | 'float32' | 'float64' | 'vec2' | 'ivec2' | 'vec3' | 'ivec3' | 'vec4' | 'ivec4' | 'color3' | 'color4';
3065
- /** For a parameter of type "buffer" or "render_target_index": how the underlying resource is accessed */
3066
- openMode?: 'read' | 'write' | 'readwrite';
3067
- /** Specialization constants gating this parameter's relevance: the key is a constant name, the value is what it must hold for the parameter to be relevant (e.g. shown in the material editor) */
3068
- spec?: {
3069
- [_additionalproperties_: string]: number | boolean;
3070
- };
3623
+ /** The rear right wheel. */
3624
+ rearRightWheel?: {
3625
+ linkage: Array<string>;
3626
+ /** A unique identifier, such as an entity's, or the nil uuid for none. */
3627
+ originalEUID: string;
3071
3628
  };
3072
- /** Parameter type */
3073
- type: 'vec4' | 'ivec4' | 'quat' | 'color_alpha' | 'vec3' | 'ivec3' | 'color' | 'vec2' | 'ivec2' | 'float' | 'int' | 'uint' | 'bool' | 'texture' | 'render_target_index' | 'buffer';
3074
- }>;
3075
- /** Hash of the node data descriptor, used to detect changes in the descriptor */
3076
- nodeDataDescriptorHash?: number;
3077
- /** The size in byte of the compiled shader code (accumulated size of all modules) */
3078
- payloadSize?: number;
3079
- /** Reference to the shader context associated with this shader. Only present for shaders that use one. */
3080
- shaderContextRef?: string;
3081
- /** Vulkan bit mask of all shader stages present in this shader */
3082
- shaderStages?: number;
3083
- /** Unique identifier for the asset */
3084
- uuid: string;
3085
- /** Vertex description. Only valid when a vertex shader module is present */
3086
- vertexDescriptor?: Array<{
3087
- /** Binding number */
3088
- binding: number;
3089
- /** Format */
3090
- format: number;
3091
- /** Location */
3092
- location: number;
3093
- /** Offset */
3094
- offset: number;
3095
- /** Semantic */
3096
- semantic: (1 | 2 | 4 | 8 | 16 | 32) & number;
3097
- /** Stride between consecutive elements within the buffer */
3098
- stride: number;
3099
- }>;
3100
- } | {
3101
- /** The albedo look up table */
3102
- albedoLUT?: Array<{
3103
- /** The normalized key for this entry */
3104
- key?: number;
3105
- /** The value associated to the key */
3106
- value?: Array<number> | number;
3107
- }>;
3108
- /** The metallic look up table */
3109
- metallicLUT?: Array<{
3110
- /** The normalized key for this entry */
3111
- key?: number;
3112
- /** The value associated to the key */
3113
- value?: Array<number> | number;
3114
- }>;
3115
- /** Name of the asset */
3116
- name: string;
3117
- /** The opacity look up table */
3118
- opacityLUT?: Array<{
3119
- /** The normalized key for this entry */
3120
- key?: number;
3121
- /** The value associated to the key */
3122
- value?: Array<number> | number;
3123
- }>;
3124
- /** The maximum voxel value handled by the material */
3125
- rangeMax: number;
3126
- /** The minimum voxel value handled material */
3127
- rangeMin: number;
3128
- /** The roughness look up table */
3129
- roughnessLUT?: Array<{
3130
- /** The normalized key for this entry */
3131
- key?: number;
3132
- /** The value associated to the key */
3133
- value?: Array<number> | number;
3134
- }>;
3135
- /** Unique identifier for the asset */
3136
- uuid: string;
3629
+ };
3630
+ /** View filtering and display controls applied to the referenced volume. */
3631
+ volume_filter?: {
3632
+ /** Apply Gaussian smoothing when sampling voxels. */
3633
+ applyGaussianFiltering?: boolean;
3634
+ /** Whether this volume is visible in the 3D view. */
3635
+ enable3D?: boolean;
3636
+ /** Whether this volume is visible in the MPR (multi-planar reconstruction) view. */
3637
+ enableMPR?: boolean;
3638
+ /** Tint applied to this volume's MPR/projection output. */
3639
+ mprColor?: Array<number>;
3640
+ /** Displayed voxel intensity range [min, max]. Values outside the material's valid range are clamped/ignored. */
3641
+ range?: Array<number>;
3642
+ /** Sample texels without hardware filtering (nearest). */
3643
+ sampleUnfiltered?: boolean;
3644
+ };
3645
+ /** Reference to the volume material used for shading and transfer functions. */
3646
+ volume_material_ref?: {
3647
+ /** Referenced volume material (UUID). */
3648
+ value?: string;
3649
+ };
3650
+ /** Reference to a volumetric dataset stored as a 3D texture (voxels). */
3651
+ volume_ref?: {
3652
+ /** Referenced 3D texture (UUID) containing the volume voxels. */
3653
+ texture3dRef?: string;
3654
+ };
3137
3655
  };
3138
- export type AssetContainerWithPayload = 'animations' | 'animation_graphs' | 'animation_sequences' | 'collision_geometries' | 'meshes' | 'point_clouds' | 'scripts' | 'shaders' | 'skeletons' | 'sounds' | 'textures' | 'textures_3d';
3139
- export type AssetContainerWithGraph = 'animation_graphs' | 'render_graphs' | 'scripts' | 'shaders';
3140
- export type AssetContainerWithCode = 'animation_sequences' | 'modules' | 'scripts' | 'shaders';
3141
- export type AssetContainerExportable = 'meshes' | 'sounds';
3142
- export type Vector3 = Array<number>;
3143
- /** An entity of a scene: its components, by class. */
3144
- export type Entity = {
3656
+ /** An entity of a scene, with its global transform when it was asked for */
3657
+ export type SceneEntity = {
3145
3658
  /** Drives skeletal animation using an Animation Graph and Animation Set; animates descendant skinned meshes whose skeletons are compatible with the set. */
3146
3659
  animation_controller?: {
3147
3660
  /** Referenced Animation Graph (UUID). */
@@ -3705,6 +4218,15 @@ export type Entity = {
3705
4218
  /** Referenced 3D texture (UUID) containing the volume voxels. */
3706
4219
  texture3dRef?: string;
3707
4220
  };
4221
+ /** The entity's transform in its scene's space, its parents' local transforms composed with its own. */
4222
+ global_transform?: {
4223
+ /** Position (x, y, z) in meters. */
4224
+ position: Array<number>;
4225
+ /** Orientation as a quaternion (x, y, z, w). */
4226
+ orientation: Array<number>;
4227
+ /** Scale (x, y, z), its parents' scales multiplied by its own. */
4228
+ scale: Array<number>;
4229
+ };
3708
4230
  };
3709
4231
  /** The settings of a scene: its settings blocks, by class. */
3710
4232
  export type SceneSettings = {
@@ -4076,10 +4598,6 @@ export type EventJobCompleted = {
4076
4598
  user_id: string;
4077
4599
  };
4078
4600
  export type AssetContainerCreatable = 'action_maps' | 'animation_graphs' | 'animation_sequences' | 'animation_sets' | 'cubemaps' | 'event_maps' | 'materials' | 'modules' | 'render_graphs' | 'scenes' | 'scripts' | 'shaders' | 'volume_materials';
4079
- /** Signature that can be used to verify the authenticity of a request. */
4080
- export type X3dverseSignature = string;
4081
- /** Unix timestamp of when the signature was generated, in milliseconds. */
4082
- export type X3dverseSignatureTimestamp = number;
4083
4601
  /** The body of every error response */
4084
4602
  export type ErrorResponse = {
4085
4603
  error: ServiceError;
@@ -4100,6 +4618,7 @@ export type ConvertingStatus = 'converting';
4100
4618
  export type ErrorStatus = 'error';
4101
4619
  /** The task was successfully processed, and the asset is ready to use. */
4102
4620
  export type SuccessStatus = 'success';
4621
+ export type PipelineId = ImportId;
4103
4622
  export type DuplicationResult = AssetDuplicationResult;
4104
4623
  export type GroupMemberInput = {
4105
4624
  user_id: UserId;
@@ -4340,6 +4859,8 @@ export type EditableAssetDescriptionInput = {
4340
4859
  [_additionalproperties_: string]: any;
4341
4860
  };
4342
4861
  };
4862
+ /** Other modules this module uses */
4863
+ moduleDependencies?: Array<string>;
4343
4864
  /** Name of the asset */
4344
4865
  name: string;
4345
4866
  } | {
@@ -5411,11 +5932,9 @@ export declare function listFolderSubFolders({ folder_id, }: {
5411
5932
  * exist. The submitted assets that already exist are overwritten only if they are listed in an `overwrite.json`
5412
5933
  * file, a JSON array of asset ids submitted along with them; without it, the import fails if one of them already
5413
5934
  * exists.
5414
- * The import runs asynchronously, as a data pipeline:
5415
- * 1. `GET /pipelines/{pipeline_id}`, with the returned `upload_task_id` as the pipeline id, tells its status and,
5416
- * on failure, the reason, such as the invalid assets or the missing permissions.
5417
- * 2. Once it has succeeded, `GET /conversion_tasks/{conversion_task_id}/metadata/import_result.json`, with the id
5418
- * of the pipeline job as the conversion task id, returns the imported, overwritten and skipped asset ids.
5935
+ * The import runs asynchronously, as a data pipeline, the returned `upload_task_id` being its id: once it has
5936
+ * succeeded, `GET /conversion_tasks/{conversion_task_id}/metadata/import_result.json`, with the id of its conversion
5937
+ * as the conversion task id, returns the imported, overwritten and skipped asset ids.
5419
5938
  */
5420
5939
  export declare function uploadSourceFiles({ folder_id, files, task_name, conversion_pipeline, source_files, options, }: {
5421
5940
  folder_id: FolderId;
@@ -5715,14 +6234,8 @@ export declare function schedulePipeline({ data_pipeline_id, pipeline_name, fold
5715
6234
  asset_id: AssetId;
5716
6235
  }>;
5717
6236
  }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<{
5718
- pipeline_id: PipelineId;
6237
+ pipeline_id: ImportId;
5719
6238
  }>;
5720
- /**
5721
- * Retrieves a specific instantiated Data Pipeline by its ID.
5722
- */
5723
- export declare function getPipeline({ pipeline_id, }: {
5724
- pipeline_id: PipelineId;
5725
- }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<Pipeline>;
5726
6239
  /**
5727
6240
  * Lists the assets of the caller's environment, at every depth, grouped by type, and with
5728
6241
  * `filter[include_public_assets]` those shared with the platform from any environment too, as asset pickers list
@@ -6562,7 +7075,7 @@ export declare function getEntity({ scene_id, entity_id, compute_global_transfor
6562
7075
  scene_id: AssetId;
6563
7076
  entity_id: string;
6564
7077
  compute_global_transform?: boolean;
6565
- }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<Entity>;
7078
+ }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<SceneEntity>;
6566
7079
  /**
6567
7080
  * Update a specific entity from a scene.
6568
7081
  */
@@ -7164,7 +7677,7 @@ export declare function getRunningSessions({ filters, }: {
7164
7677
  /**
7165
7678
  * Create a new rendering session.
7166
7679
  */
7167
- export declare function createSession({ scene_id, renderer_version, is_transient, options, }: {
7680
+ export declare function createSession({ scene_id, renderer_version, is_transient, options, metadata, }: {
7168
7681
  /** The unique identifier of the scene to launch. */
7169
7682
  scene_id: AssetId;
7170
7683
  /** The version of the renderer to use. */
@@ -7175,6 +7688,8 @@ export declare function createSession({ scene_id, renderer_version, is_transient
7175
7688
  options?: {
7176
7689
  [_additionalproperties_: string]: any;
7177
7690
  };
7691
+ /** What the application attaches to the session, returned with it. */
7692
+ metadata?: Metadata;
7178
7693
  }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<{
7179
7694
  session_id: SessionId;
7180
7695
  }>;
@@ -7194,10 +7709,12 @@ export declare function killSession({ session_id, }: {
7194
7709
  /**
7195
7710
  * Creates a new client for the user and returns a token to join the session.
7196
7711
  */
7197
- export declare function joinSession({ session_id, is_headless, }: {
7712
+ export declare function joinSession({ session_id, is_headless, metadata, }: {
7198
7713
  session_id: SessionId;
7199
7714
  /** Declare that the client is headless and will not receive any frames. Useful for clients running on servers or in the background. */
7200
7715
  is_headless?: boolean;
7716
+ /** What the application attaches to the client the token creates, returned with it. */
7717
+ metadata?: Metadata;
7201
7718
  }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<SessionToken>;
7202
7719
  /**
7203
7720
  * Retrieves details about the target client.
@@ -7217,7 +7734,10 @@ export declare function kickClientFromSession({ session_id, client_id, }: {
7217
7734
  /**
7218
7735
  * Join a session as guest.
7219
7736
  */
7220
- export declare function joinSessionAsGuest(headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<SessionToken>;
7737
+ export declare function joinSessionAsGuest({ metadata, }: {
7738
+ /** What the application attaches to the client the token creates, returned with it. */
7739
+ metadata?: Metadata;
7740
+ }, headers?: RawAxiosRequestHeaders | AxiosRequestHeaders): AxiosPromise<SessionToken>;
7221
7741
  /**
7222
7742
  * Generates a token to join the session as a guest.
7223
7743
  */