From 7288000ee6d4101ea1641ae4fdc9406546c6b73b Mon Sep 17 00:00:00 2001 From: TJ Date: Wed, 10 Jun 2026 16:22:41 +0200 Subject: [PATCH] Added first single object files --- data-structure-database.md | 2 ++ objects/Cube.md | 36 +++++++++++++++++++++++++++ objects/Cylinder.md | 36 +++++++++++++++++++++++++++ objects/README.md | 51 ++++++++++++++++++++++++++++++++++++++ objects/VideoWall.md | 41 ++++++++++++++++++++++++++++++ 5 files changed, 166 insertions(+) create mode 100644 objects/Cube.md create mode 100644 objects/Cylinder.md create mode 100644 objects/README.md create mode 100644 objects/VideoWall.md diff --git a/data-structure-database.md b/data-structure-database.md index d6fdec7..f7e30bb 100644 --- a/data-structure-database.md +++ b/data-structure-database.md @@ -80,6 +80,7 @@ All values are serialized as strings. |---|---|---| | `Entrance` | `Entrance` | _(none)_ | | `Exit` | _(not implemented in save)_ | — | +| `RoomTeleporter` | _(not implemented in save)_ | `roomid` | ### Streaming / media @@ -96,6 +97,7 @@ All values are serialized as strings. | Creator type | `resourcename` | `type` field | Custom args | |---|---|---|---| | `Text` | `Text` | `pre-defined` | `text`, `color`, `fontSize`, `fontWeight` | +| `Whiteboard` | _(not implemented in save)_ | `pre-defined` | _(none)_ | | `Custom` | _(the asset filename)_ | `user-defined` | `file` | ### Common optional arg (all types) diff --git a/objects/Cube.md b/objects/Cube.md new file mode 100644 index 0000000..64d0840 --- /dev/null +++ b/objects/Cube.md @@ -0,0 +1,36 @@ +# Cube + +### Type +pre-defined + +### 3D +The Cube is a 1m x 1m x 1m opaque Cube. +Its Origin is in the Geometric Center. +Spawnpoint should be {0,0.5,0} so its on the floor. + +### Custom Args: +| Key | Type | Implemented | Description | +|---|---|---|---| +| color | hexColor | ✔️ | Color the Material of the Cube uses | + +### Special Notes: +The Cube has a collider and is a "Teleportation Area". + +### Example: + +```json +{ + "position": { "x": 0.0, "y": 0.5, "z": 0.0 }, + "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, + "scale": { "x": 1.0, "y": 1.0, "z": 1.0 }, + "type": "pre-defined", + "resourcename": "Cube", + "item-custom-args": [ + { + "value": "#ff3300", + "argument": "color" + } + ], + "item-custom-args-adv": null +} +``` diff --git a/objects/Cylinder.md b/objects/Cylinder.md new file mode 100644 index 0000000..d8cb0af --- /dev/null +++ b/objects/Cylinder.md @@ -0,0 +1,36 @@ +# Cylinder + +### Type +pre-defined + +### 3D +The Cylinder is 1m high and has a radius of 0.5m. Its "standing": The round face faces upwards. +Its Origin is in the Geometric Center. +Spawnpoint should be {0,0.5,0} so its on the floor. + +### Custom Args: +| Key | Type | Implemented | Description | +|---|---|---|---| +| color | hexColor | ✔️ | Color the Material of the Cube uses | + +### Special Notes: +The Cylinder has a collider and is a "Teleportation Area". + +### Example: + +```json +{ + "position": { "x": 2.0, "y": 1, "z": 0.0 }, + "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, + "scale": { "x": 1.0, "y": 2.0, "z": 1.0 }, + "type": "pre-defined", + "resourcename": "Cylinder", + "item-custom-args": [ + { + "value": "#0033ff", + "argument": "color" + } + ], + "item-custom-args-adv": null +} +``` diff --git a/objects/README.md b/objects/README.md new file mode 100644 index 0000000..6c52e0c --- /dev/null +++ b/objects/README.md @@ -0,0 +1,51 @@ +# Objects + +In this folder every object has a File that includes: +- Name of that object. +- Type of the Object ("pre-defined" or "user-defined") +- Description of 3D representation of that object. +- List of custom args, their type, if its implemented (✔️⚠️ ❌), and usage +- Special Notes. +- One or more example JSON Objects of that object. + +## Example: + +Cube.md +```markdown +# Cube + +### Type +pre-defined + +### 3D +The Cube is a 1m x 1m x 1m opaque Cube. +Its Origin is in the Geometric Center. +Spawnpoint should be {0,0.5,0} so its on the floor. + +### Custom Args: +| Key | Type | Implemented | Description | +|---|---|---|---| +| color | hexColor | ✔️ | Color the Material of the Cube uses | + +### Special Notes: +_none_ + +### Example: + +```json +{ + "position": { "x": 0.0, "y": 0.5, "z": 0.0 }, + "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, + "scale": { "x": 1.0, "y": 1.0, "z": 1.0 }, + "type": "pre-defined", + "resourcename": "Cube", + "item-custom-args": [ + { + "value": "#ff3300", + "argument": "color" + } + ], + "item-custom-args-adv": null +} +``` +``` diff --git a/objects/VideoWall.md b/objects/VideoWall.md new file mode 100644 index 0000000..1b8c4c6 --- /dev/null +++ b/objects/VideoWall.md @@ -0,0 +1,41 @@ +# VideoWall + +### Type +pre-defined + +### 3D +The VideoWall is a 4m x 2,25m opaque Plane. +When "controls" is set to true it expands to 4m x 2,5m. +Its Origin is at the Bottom-Center (if controls are disabled). +Spawnpoint should be {0,1,0} so its 1m above the floor. + +### Custom Args: +| Key | Type | Implemented | Description | +|---|---|---|---| +| file | string | ✔️ | the location in storage (user_files) of the video file | +| volume | string | ⚠️ (only Unity) | float between 0 and 1, default 1.| +|shader | string | ✔️ | "unlit"(default),"lit","greenscreen"| +|controls| bool | ❌ | If Controls are enabled at the bottom of the screen| +|autoplay|bool| ⚠️ (only Unity) |if the video automaticly plays when user enters the Room| + + +### Special Notes: +The Creator handles Uploading of Videos, generating Meta-Quest compatible Videos and then assiging the id to the url field. + +### Example: + +```json +{ + "position": { "x": 0.0, "y": 1, "z": -6 }, + "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, + "scale": { "x": 1.0, "y": 1.0, "z": 1.0 }, + "type": "pre-defined", + "resourcename": "Cube", + "item-custom-args": [ + { + "value": "b83a17ab-92bf-4122-a4d0-7b467a105ae0/converted/output.webm", + "argument": "file" + } + ], + "item-custom-args-adv": null +}