@pascal-app/editor 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/package.json +13 -9
  2. package/src/components/editor/bottom-sheet.tsx +149 -0
  3. package/src/components/editor/custom-camera-controls.tsx +74 -5
  4. package/src/components/editor/editor-layout-mobile.tsx +264 -0
  5. package/src/components/editor/editor-layout-v2.tsx +24 -3
  6. package/src/components/editor/first-person/build-collider-world.ts +363 -0
  7. package/src/components/editor/first-person/bvh-ecctrl.tsx +860 -0
  8. package/src/components/editor/first-person-controls.tsx +496 -143
  9. package/src/components/editor/floating-action-menu.tsx +32 -55
  10. package/src/components/editor/floorplan-background-selection.ts +113 -0
  11. package/src/components/editor/floorplan-panel.tsx +9861 -3297
  12. package/src/components/editor/index.tsx +295 -32
  13. package/src/components/editor/selection-manager.tsx +575 -13
  14. package/src/components/editor/snapshot-capture-overlay.tsx +465 -0
  15. package/src/components/editor/thumbnail-generator.tsx +56 -68
  16. package/src/components/editor/use-floorplan-background-placement.ts +257 -0
  17. package/src/components/editor/use-floorplan-hit-testing.ts +171 -0
  18. package/src/components/editor/use-floorplan-scene-data.ts +189 -0
  19. package/src/components/editor/wall-measurement-label.tsx +267 -36
  20. package/src/components/editor-2d/floorplan-action-menu-layer.tsx +95 -0
  21. package/src/components/editor-2d/floorplan-cursor-indicator-overlay.tsx +160 -0
  22. package/src/components/editor-2d/floorplan-hotkey-handlers.tsx +92 -0
  23. package/src/components/editor-2d/renderers/floorplan-draft-layer.tsx +124 -0
  24. package/src/components/editor-2d/renderers/floorplan-marquee-layer.tsx +58 -0
  25. package/src/components/editor-2d/renderers/floorplan-measurements-layer.tsx +202 -0
  26. package/src/components/editor-2d/renderers/floorplan-roof-layer.tsx +113 -0
  27. package/src/components/editor-2d/renderers/floorplan-stair-layer.tsx +474 -0
  28. package/src/components/editor-2d/svg-paths.ts +119 -0
  29. package/src/components/systems/ceiling/ceiling-selection-affordance-system.tsx +10 -12
  30. package/src/components/systems/roof/roof-edit-system.tsx +1 -1
  31. package/src/components/systems/stair/stair-edit-system.tsx +1 -1
  32. package/src/components/systems/zone/zone-label-editor-system.tsx +0 -0
  33. package/src/components/systems/zone/zone-system.tsx +0 -0
  34. package/src/components/tools/ceiling/ceiling-boundary-editor.tsx +1 -0
  35. package/src/components/tools/ceiling/ceiling-hole-editor.tsx +1 -0
  36. package/src/components/tools/ceiling/ceiling-tool.tsx +5 -5
  37. package/src/components/tools/ceiling/move-ceiling-tool.tsx +9 -2
  38. package/src/components/tools/column/column-tool.tsx +97 -0
  39. package/src/components/tools/column/move-column-tool.tsx +105 -0
  40. package/src/components/tools/door/door-tool.tsx +7 -0
  41. package/src/components/tools/door/move-door-tool.tsx +28 -8
  42. package/src/components/tools/fence/curve-fence-tool.tsx +4 -5
  43. package/src/components/tools/fence/fence-drafting.ts +10 -3
  44. package/src/components/tools/fence/fence-tool.tsx +160 -4
  45. package/src/components/tools/fence/move-fence-endpoint-tool.tsx +139 -25
  46. package/src/components/tools/fence/move-fence-tool.tsx +111 -40
  47. package/src/components/tools/item/move-tool.tsx +7 -1
  48. package/src/components/tools/item/placement-math.ts +32 -5
  49. package/src/components/tools/item/placement-strategies.ts +110 -31
  50. package/src/components/tools/item/placement-types.ts +7 -0
  51. package/src/components/tools/item/use-draft-node.ts +1 -0
  52. package/src/components/tools/item/use-placement-coordinator.tsx +558 -52
  53. package/src/components/tools/roof/move-roof-tool.tsx +29 -17
  54. package/src/components/tools/select/box-select-tool.tsx +12 -17
  55. package/src/components/tools/shared/polygon-editor.tsx +153 -28
  56. package/src/components/tools/shared/segment-angle.ts +156 -0
  57. package/src/components/tools/slab/slab-boundary-editor.tsx +1 -0
  58. package/src/components/tools/slab/slab-hole-editor.tsx +1 -0
  59. package/src/components/tools/spawn/move-spawn-tool.tsx +101 -0
  60. package/src/components/tools/spawn/spawn-tool.tsx +130 -0
  61. package/src/components/tools/tool-manager.tsx +20 -5
  62. package/src/components/tools/wall/curve-wall-tool.tsx +8 -6
  63. package/src/components/tools/wall/move-wall-endpoint-tool.tsx +131 -27
  64. package/src/components/tools/wall/move-wall-tool.tsx +6 -4
  65. package/src/components/tools/wall/wall-drafting.ts +18 -9
  66. package/src/components/tools/wall/wall-tool.tsx +136 -4
  67. package/src/components/tools/window/move-window-tool.tsx +18 -0
  68. package/src/components/tools/window/window-tool.tsx +5 -0
  69. package/src/components/tools/zone/zone-tool.tsx +20 -5
  70. package/src/components/ui/action-menu/camera-actions.tsx +37 -33
  71. package/src/components/ui/action-menu/control-modes.tsx +34 -1
  72. package/src/components/ui/action-menu/furnish-tools.tsx +6 -92
  73. package/src/components/ui/action-menu/index.tsx +98 -59
  74. package/src/components/ui/action-menu/structure-tools.tsx +2 -0
  75. package/src/components/ui/action-menu/view-toggles.tsx +418 -41
  76. package/src/components/ui/command-palette/editor-commands.tsx +24 -5
  77. package/src/components/ui/command-palette/index.tsx +4 -255
  78. package/src/components/ui/controls/material-picker.tsx +154 -164
  79. package/src/components/ui/controls/slider-control.tsx +66 -18
  80. package/src/components/ui/floating-level-selector.tsx +286 -55
  81. package/src/components/ui/helpers/helper-manager.tsx +10 -0
  82. package/src/components/ui/item-catalog/catalog-items.tsx +2563 -1239
  83. package/src/components/ui/item-catalog/item-catalog.tsx +96 -187
  84. package/src/components/ui/level-duplicate-dialog.tsx +113 -0
  85. package/src/components/ui/panels/ceiling-panel.tsx +3 -28
  86. package/src/components/ui/panels/column-panel.tsx +759 -0
  87. package/src/components/ui/panels/door-panel.tsx +989 -290
  88. package/src/components/ui/panels/fence-panel.tsx +2 -49
  89. package/src/components/ui/panels/mobile-panel-sheet.tsx +108 -0
  90. package/src/components/ui/panels/mobile-selection-bar.tsx +100 -0
  91. package/src/components/ui/panels/node-display.ts +39 -0
  92. package/src/components/ui/panels/paint-panel.tsx +163 -0
  93. package/src/components/ui/panels/panel-manager.tsx +208 -28
  94. package/src/components/ui/panels/panel-wrapper.tsx +48 -39
  95. package/src/components/ui/panels/reference-panel.tsx +253 -5
  96. package/src/components/ui/panels/roof-panel.tsx +13 -64
  97. package/src/components/ui/panels/roof-segment-panel.tsx +0 -25
  98. package/src/components/ui/panels/slab-panel.tsx +4 -30
  99. package/src/components/ui/panels/spawn-panel.tsx +161 -0
  100. package/src/components/ui/panels/stair-panel.tsx +20 -74
  101. package/src/components/ui/panels/stair-segment-panel.tsx +0 -25
  102. package/src/components/ui/panels/wall-panel.tsx +10 -8
  103. package/src/components/ui/panels/window-panel.tsx +668 -139
  104. package/src/components/ui/primitives/number-input.tsx +1 -1
  105. package/src/components/ui/primitives/sidebar.tsx +0 -0
  106. package/src/components/ui/sidebar/app-sidebar.tsx +0 -0
  107. package/src/components/ui/sidebar/icon-rail.tsx +0 -0
  108. package/src/components/ui/sidebar/mobile-tab-bar.tsx +46 -0
  109. package/src/components/ui/sidebar/panels/items-panel/index.tsx +330 -0
  110. package/src/components/ui/sidebar/panels/settings-panel/index.tsx +0 -0
  111. package/src/components/ui/sidebar/panels/settings-panel/keyboard-shortcuts-dialog.tsx +2 -2
  112. package/src/components/ui/sidebar/panels/site-panel/building-tree-node.tsx +2 -2
  113. package/src/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx +0 -0
  114. package/src/components/ui/sidebar/panels/site-panel/column-tree-node.tsx +77 -0
  115. package/src/components/ui/sidebar/panels/site-panel/index.tsx +105 -22
  116. package/src/components/ui/sidebar/panels/site-panel/level-tree-node.tsx +2 -2
  117. package/src/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx +0 -0
  118. package/src/components/ui/sidebar/panels/site-panel/spawn-tree-node.tsx +76 -0
  119. package/src/components/ui/sidebar/panels/site-panel/tree-node.tsx +11 -3
  120. package/src/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx +10 -5
  121. package/src/components/ui/sidebar/panels/zone-panel/index.tsx +1 -1
  122. package/src/components/ui/sidebar/tab-bar.tsx +3 -0
  123. package/src/components/ui/slider.tsx +1 -1
  124. package/src/components/viewer-overlay.tsx +0 -0
  125. package/src/components/viewer-zone-system.tsx +0 -0
  126. package/src/hooks/use-auto-frame.ts +45 -0
  127. package/src/hooks/use-auto-save.ts +14 -0
  128. package/src/hooks/use-keyboard.ts +74 -7
  129. package/src/hooks/use-mobile.ts +12 -12
  130. package/src/index.tsx +8 -1
  131. package/src/lib/door-interaction.ts +88 -0
  132. package/src/lib/floorplan/geometry.ts +263 -0
  133. package/src/lib/floorplan/index.ts +38 -0
  134. package/src/lib/floorplan/items.ts +179 -0
  135. package/src/lib/floorplan/selection-tool.ts +231 -0
  136. package/src/lib/floorplan/stairs.ts +478 -0
  137. package/src/lib/floorplan/types.ts +57 -0
  138. package/src/lib/floorplan/walls.ts +23 -0
  139. package/src/lib/guide-events.ts +10 -0
  140. package/src/lib/level-duplication.test.ts +70 -0
  141. package/src/lib/level-duplication.ts +153 -0
  142. package/src/lib/local-guide-image.ts +42 -0
  143. package/src/lib/material-paint.ts +284 -0
  144. package/src/lib/roof-duplication.ts +214 -0
  145. package/src/lib/scene-bounds.test.ts +183 -0
  146. package/src/lib/scene-bounds.ts +169 -0
  147. package/src/lib/scene.ts +0 -0
  148. package/src/lib/sfx-bus.ts +2 -0
  149. package/src/lib/sfx-player.ts +5 -5
  150. package/src/lib/stair-duplication.ts +126 -0
  151. package/src/lib/window-interaction.ts +86 -0
  152. package/src/store/use-editor.tsx +186 -62
  153. package/tsconfig.json +2 -1
  154. package/src/components/feedback-dialog.tsx +0 -265
  155. package/src/components/pascal-radio.tsx +0 -280
  156. package/src/components/preview-button.tsx +0 -16
  157. package/src/components/ui/viewer-toolbar.tsx +0 -395
@@ -1,1581 +1,2905 @@
1
1
  import type { AssetInput } from '@pascal-app/core'
2
+
2
3
  export const CATALOG_ITEMS: AssetInput[] = [
3
4
  {
4
- id: 'tesla',
5
- category: 'outdoor',
6
- tags: ['floor', 'garage'],
7
- name: 'Tesla',
8
- thumbnail: '/items/tesla/thumbnail.webp',
9
- src: '/items/tesla/model.glb',
10
- scale: [1, 1, 1],
11
- offset: [0, 0, 0],
5
+ id: 'cactus',
6
+ category: 'furniture',
7
+ name: 'Cactus',
8
+ tags: [
9
+ 'cactus',
10
+ 'rack',
11
+ 'stand',
12
+ 'hanger',
13
+ 'sculpture',
14
+ 'decor',
15
+ 'modern',
16
+ 'contemporary',
17
+ 'pop',
18
+ 'green',
19
+ 'organizer',
20
+ 'storage',
21
+ 'sculptural',
22
+ ],
23
+ thumbnail:
24
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/cactus/thumbnail.png',
25
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/cactus/model.glb',
26
+ floorPlanUrl:
27
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/cactus/floor-plan.png',
28
+ dimensions: [0.34, 0.39, 0.27],
29
+ offset: [-0.0039, 0, 0],
12
30
  rotation: [0, 0, 0],
13
- dimensions: [2, 1.7, 5],
31
+ scale: [1, 1, 1],
14
32
  },
15
33
  {
16
- id: 'ev-wall-charger',
17
- category: 'appliance',
18
- tags: ['wall', 'garage'],
19
- name: 'Ev-wall-charger',
20
- thumbnail: '/items/ev-wall-charger/thumbnail.webp',
21
- src: '/items/ev-wall-charger/model.glb',
22
- scale: [1, 1, 1],
23
- offset: [-0.07, 0.4, 0.15],
34
+ id: 'tv-stand',
35
+ category: 'furniture',
36
+ name: 'TV Stand',
37
+ tags: ['floor', 'storage'],
38
+ thumbnail:
39
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tv-stand/thumbnail.png',
40
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tv-stand/model.glb',
41
+ floorPlanUrl:
42
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tv-stand/floor-plan.png',
43
+ dimensions: [1.86, 0.35, 0.32],
44
+ offset: [0, 0.2066, 0],
24
45
  rotation: [0, 0, 0],
25
- dimensions: [0.5, 0.8, 0.5],
26
- attachTo: 'wall',
46
+ scale: [1, 1, 1],
47
+ surface: { height: 0.35 },
27
48
  },
28
49
  {
29
- id: 'pillar',
30
- category: 'outdoor',
31
- tags: ['structure', 'fencing'],
32
- name: 'Pillar',
33
- thumbnail: '/items/pillar/thumbnail.webp',
34
- src: '/items/pillar/model.glb',
35
- scale: [1, 1, 1],
36
- offset: [0, 0, 0],
37
- rotation: [0, 0, 0],
38
- dimensions: [0.5, 1.3, 0.5],
50
+ id: 'dining-table-mo9ms5yh',
51
+ category: 'furniture',
52
+ name: 'Dining table',
53
+ tags: [
54
+ 'dining',
55
+ 'table',
56
+ 'dinette',
57
+ 'wood',
58
+ 'oak',
59
+ 'modern',
60
+ 'minimalist',
61
+ 'scandinavian',
62
+ 'rectangular',
63
+ 'kitchen',
64
+ 'mealtime',
65
+ 'entertaining',
66
+ ],
67
+ thumbnail:
68
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-table-mo9ms5yh/thumbnail.png',
69
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-table-mo9ms5yh/models/item_model_Sffq4hIGw8R3keLh.glb',
70
+ floorPlanUrl:
71
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-table-mo9ms5yh/floor-plan.png',
72
+ dimensions: [2, 0.77, 0.91],
73
+ offset: [0.0002, 0.3793, -0.0026],
74
+ rotation: [0, 0, 0],
75
+ scale: [2, 2, 2],
76
+ surface: { height: 0.77 },
39
77
  },
40
-
41
78
  {
42
- id: 'high-fence',
43
- category: 'outdoor',
44
- tags: ['fencing'],
45
- name: 'High Fence',
46
- thumbnail: '/items/high-fence/thumbnail.webp',
47
- src: '/items/high-fence/model.glb',
48
- scale: [1, 1, 1],
49
- offset: [0, 0.01, 0],
79
+ id: 'single-bed',
80
+ category: 'furniture',
81
+ name: 'Single Bed',
82
+ tags: ['floor', 'bedroom'],
83
+ thumbnail:
84
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/single-bed/thumbnail.png',
85
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/single-bed/model.glb',
86
+ floorPlanUrl:
87
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/single-bed/floor-plan.png',
88
+ dimensions: [1.08, 0.6, 2.14],
89
+ offset: [-0.0024, 0, -0.013],
50
90
  rotation: [0, 0, 0],
51
- dimensions: [4, 4.1, 0.5],
91
+ scale: [1, 1, 1],
52
92
  },
53
-
54
93
  {
55
- id: 'medium-fence',
56
- category: 'outdoor',
57
- tags: ['fencing'],
58
- name: 'Medium Fence',
59
- thumbnail: '/items/medium-fence/thumbnail.webp',
60
- src: '/items/medium-fence/model.glb',
61
- scale: [0.49, 0.49, 0.49],
62
- offset: [0, 0.01, 0],
94
+ id: 'livingroom-chair',
95
+ category: 'furniture',
96
+ name: 'Livingroom Chair',
97
+ tags: [
98
+ 'chair',
99
+ 'armchair',
100
+ 'seating',
101
+ 'lounge',
102
+ 'upholstered',
103
+ 'modern',
104
+ 'fabric',
105
+ 'furniture',
106
+ 'minimalist',
107
+ 'comfort',
108
+ 'accent',
109
+ 'lounger',
110
+ ],
111
+ thumbnail:
112
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/livingroom-chair/thumbnail.png',
113
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/livingroom-chair/model.glb',
114
+ floorPlanUrl:
115
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/livingroom-chair/floor-plan.png',
116
+ dimensions: [1.1, 0.75, 1.07],
117
+ offset: [0, 0.0001, 0.0053],
63
118
  rotation: [0, 0, 0],
64
- dimensions: [2, 2, 0.5],
119
+ scale: [1, 1, 1],
65
120
  },
66
-
67
121
  {
68
- id: 'low-fence',
69
- category: 'outdoor',
70
- tags: ['fencing'],
71
- name: 'Low Fence',
72
- thumbnail: '/items/low-fence/thumbnail.webp',
73
- src: '/items/low-fence/model.glb',
74
- scale: [1, 1, 1],
75
- offset: [0, 0.01, 0],
122
+ id: 'small-indoor-plant',
123
+ category: 'furniture',
124
+ name: 'Small Plant',
125
+ tags: ['countertop', 'decor', 'vegetation'],
126
+ thumbnail:
127
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/small-indoor-plant/thumbnail.png',
128
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/small-indoor-plant/model.glb',
129
+ floorPlanUrl:
130
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/small-indoor-plant/floor-plan.png',
131
+ dimensions: [0.4, 0.67, 0.38],
132
+ offset: [-0.0106, 0, 0.0067],
76
133
  rotation: [0, 0, 0],
77
- dimensions: [2, 0.8, 0.5],
134
+ scale: [1, 1, 1],
78
135
  },
79
-
80
136
  {
81
- id: 'bush',
82
- category: 'outdoor',
83
- tags: ['vegetation'],
84
- name: 'Bush',
85
- thumbnail: '/items/bush/thumbnail.webp',
86
- src: '/items/bush/model.glb',
87
- scale: [0.96, 0.96, 0.96],
88
- offset: [-0.14, 0.01, -0.13],
137
+ id: 'column',
138
+ category: 'furniture',
139
+ name: 'Column',
140
+ tags: [
141
+ 'column',
142
+ 'pillar',
143
+ 'pedestal',
144
+ 'plinth',
145
+ 'stand',
146
+ 'marble',
147
+ 'stone',
148
+ 'classical',
149
+ 'roman',
150
+ 'greek',
151
+ 'decorative',
152
+ 'architectural',
153
+ 'antique',
154
+ 'support',
155
+ 'base',
156
+ ],
157
+ thumbnail:
158
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/column/thumbnail.png',
159
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/column/model.glb',
160
+ floorPlanUrl:
161
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/column/floor-plan.png',
162
+ dimensions: [0.5, 2.5, 0.5],
163
+ offset: [0, 1.25, 0],
89
164
  rotation: [0, 0, 0],
90
- dimensions: [3, 1.1, 1],
165
+ scale: [1, 1, 1],
91
166
  },
92
-
93
167
  {
94
- id: 'fir-tree',
95
- category: 'outdoor',
96
- tags: ['vegetation'],
97
- name: 'Fir',
98
- thumbnail: '/items/fir-tree/thumbnail.webp',
99
- src: '/items/fir-tree/model.glb',
100
- scale: [1, 1, 1],
101
- offset: [-0.01, 0.05, -0.07],
168
+ id: 'barbell',
169
+ category: 'furniture',
170
+ name: 'Barbell',
171
+ tags: [
172
+ 'barbell',
173
+ 'weight',
174
+ 'steel',
175
+ 'iron',
176
+ 'metal',
177
+ 'gym',
178
+ 'fitness',
179
+ 'industrial',
180
+ 'workout',
181
+ 'strength',
182
+ 'training',
183
+ 'lifting',
184
+ 'chrome',
185
+ 'exercise',
186
+ ],
187
+ thumbnail:
188
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/barbell/thumbnail.png',
189
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/barbell/model.glb',
190
+ floorPlanUrl:
191
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/barbell/floor-plan.png',
192
+ dimensions: [0.38, 0.38, 1.72],
193
+ offset: [0, 0, 0],
102
194
  rotation: [0, 0, 0],
103
- dimensions: [0.5, 3, 0.5],
195
+ scale: [1, 1, 1],
104
196
  },
105
-
106
197
  {
107
- id: 'tree',
108
- category: 'outdoor',
109
- tags: ['vegetation'],
110
- name: 'Tree',
111
- thumbnail: '/items/tree/thumbnail.webp',
112
- src: '/items/tree/model.glb',
113
- scale: [0.65, 0.65, 0.65],
114
- offset: [-0.02, 0.17, -0.04],
198
+ id: 'toy',
199
+ category: 'furniture',
200
+ name: 'Toy',
201
+ tags: ['floor', 'kids', 'decor'],
202
+ thumbnail:
203
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toy/thumbnail.png',
204
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toy/model.glb',
205
+ floorPlanUrl:
206
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toy/floor-plan.png',
207
+ dimensions: [0.29, 0.49, 0.34],
208
+ offset: [0, 0, 0],
115
209
  rotation: [0, 0, 0],
116
- dimensions: [1, 5, 1],
210
+ scale: [1, 1, 1],
117
211
  },
118
-
119
212
  {
120
- id: 'palm',
121
- category: 'outdoor',
122
- tags: ['vegetation'],
123
- name: 'Palm',
124
- thumbnail: '/items/palm/thumbnail.webp',
125
- src: '/items/palm/model.glb',
126
- scale: [0.37, 0.37, 0.37],
127
- offset: [0, 0, 0.02],
213
+ id: 'barbell-stand',
214
+ category: 'furniture',
215
+ name: 'Barbell Stand',
216
+ tags: [
217
+ 'rack',
218
+ 'stand',
219
+ 'holder',
220
+ 'storage',
221
+ 'metal',
222
+ 'steel',
223
+ 'industrial',
224
+ 'fitness',
225
+ 'gym',
226
+ 'weightlifting',
227
+ 'training',
228
+ 'minimalist',
229
+ 'black',
230
+ 'organizer',
231
+ ],
232
+ thumbnail:
233
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/barbell-stand/thumbnail.png',
234
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/barbell-stand/model.glb',
235
+ floorPlanUrl:
236
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/barbell-stand/floor-plan.png',
237
+ dimensions: [1.34, 1.22, 1.72],
238
+ offset: [-0.0173, 0, 0],
128
239
  rotation: [0, 0, 0],
129
- dimensions: [1, 4.5, 1],
240
+ scale: [1, 1, 1],
130
241
  },
131
-
132
242
  {
133
- id: 'patio-umbrella',
134
- category: 'outdoor',
135
- tags: ['leisure', 'floor'],
136
- name: 'Patio Umbrella',
137
- thumbnail: '/items/patio-umbrella/thumbnail.webp',
138
- src: '/items/patio-umbrella/model.glb',
139
- scale: [1, 1, 1],
140
- offset: [0, 0, 0],
243
+ id: 'books',
244
+ category: 'furniture',
245
+ name: 'Books',
246
+ tags: [
247
+ 'books',
248
+ 'novels',
249
+ 'literature',
250
+ 'reading',
251
+ 'vintage',
252
+ 'classic',
253
+ 'decorative',
254
+ 'paper',
255
+ 'leather',
256
+ 'library',
257
+ 'study',
258
+ 'office',
259
+ 'decor',
260
+ 'shelf',
261
+ 'antique',
262
+ ],
263
+ thumbnail:
264
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/books/thumbnail.png',
265
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/books/model.glb',
266
+ floorPlanUrl:
267
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/books/floor-plan.png',
268
+ dimensions: [0.22, 0.22, 0.18],
269
+ offset: [-0.0851, 0.003, 0.0209],
141
270
  rotation: [0, 0, 0],
142
- dimensions: [0.5, 3.7, 0.5],
271
+ scale: [1, 1, 1],
143
272
  },
144
-
145
273
  {
146
- id: 'sunbed',
147
- category: 'outdoor',
148
- tags: ['leisure', 'seating', 'floor'],
149
- name: 'Sunbed',
150
- thumbnail: '/items/sunbed/thumbnail.webp',
151
- src: '/items/sunbed/model.glb',
152
- scale: [1, 1, 1],
153
- offset: [0, 0.04, 0],
274
+ id: 'stool',
275
+ category: 'furniture',
276
+ name: 'Stool',
277
+ tags: ['floor', 'seating'],
278
+ thumbnail:
279
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stool/thumbnail.png',
280
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stool/model.glb',
281
+ floorPlanUrl:
282
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stool/floor-plan.png',
283
+ dimensions: [0.52, 1.16, 0.55],
284
+ offset: [0, 0, 0],
154
285
  rotation: [0, 0, 0],
155
- dimensions: [1, 1.2, 1.5],
286
+ scale: [1, 1, 1],
156
287
  },
157
-
158
288
  {
159
- id: 'window-double',
160
- category: 'window',
161
- tags: ['wall'],
162
- name: 'Double Window',
163
- thumbnail: '/items/window-double/thumbnail.webp',
164
- src: '/items/window-double/model.glb',
165
- scale: [0.81, 0.81, 0.81],
166
- offset: [0, -0.32, 0],
167
- rotation: [0, 3.14, 0],
168
- dimensions: [1.5, 1.5, 0.5],
169
- attachTo: 'wall',
289
+ id: 'pool-table',
290
+ category: 'furniture',
291
+ name: 'Pool table',
292
+ tags: [
293
+ 'pool',
294
+ 'billiards',
295
+ 'snooker',
296
+ 'table',
297
+ 'recreation',
298
+ 'leisure',
299
+ 'entertainment',
300
+ 'wood',
301
+ 'felt',
302
+ 'gaming',
303
+ 'traditional',
304
+ 'luxury',
305
+ 'classic',
306
+ 'hobby',
307
+ 'furniture',
308
+ ],
309
+ thumbnail:
310
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/pool-table/thumbnail.png',
311
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/pool-table/model.glb',
312
+ floorPlanUrl:
313
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/pool-table/floor-plan.png',
314
+ dimensions: [2.11, 0.98, 3.5],
315
+ offset: [0, 0, 0],
316
+ rotation: [0, 0, 0],
317
+ scale: [1, 1, 1],
170
318
  },
171
-
172
319
  {
173
- id: 'window-simple',
174
- category: 'window',
175
- tags: ['wall'],
176
- name: 'Simple Window',
177
- thumbnail: '/items/window-simple/thumbnail.webp',
178
- src: '/items/window-simple/model.glb',
320
+ id: 'bookshelf',
321
+ category: 'furniture',
322
+ name: 'Bookshelf',
323
+ tags: [
324
+ 'bookshelf',
325
+ 'bookcase',
326
+ 'shelving',
327
+ 'storage',
328
+ 'organizer',
329
+ 'modern',
330
+ 'minimalist',
331
+ 'wood',
332
+ 'metal',
333
+ 'industrial',
334
+ 'library',
335
+ 'office',
336
+ 'furniture',
337
+ 'display',
338
+ 'timber',
339
+ ],
340
+ thumbnail:
341
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bookshelf/thumbnail.png',
342
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bookshelf/model.glb',
343
+ floorPlanUrl:
344
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bookshelf/floor-plan.png',
345
+ dimensions: [0.93, 1.99, 0.33],
346
+ offset: [0, 0, 0.0032],
347
+ rotation: [0, 0, 0],
179
348
  scale: [1, 1, 1],
180
- offset: [1.06, -0.21, 0.05],
181
- rotation: [0, 3.14, 0],
182
- dimensions: [1.5, 2, 0.5],
183
- attachTo: 'wall',
184
349
  },
185
-
186
350
  {
187
- id: 'window-rectangle',
188
- category: 'window',
189
- tags: ['wall'],
190
- name: 'Rectangle Window',
191
- thumbnail: '/items/window-rectangle/thumbnail.webp',
192
- src: '/items/window-rectangle/model.glb',
193
- scale: [0.81, 0.81, 0.81],
194
- offset: [-1.41, -0.28, 0.08],
195
- rotation: [0, 3.14, 0],
196
- dimensions: [2.5, 1.5, 0.5],
197
- attachTo: 'wall',
351
+ id: 'coat-rack',
352
+ category: 'furniture',
353
+ name: 'Coat Rack',
354
+ tags: [
355
+ 'coatrack',
356
+ 'rack',
357
+ 'hanger',
358
+ 'valet',
359
+ 'organizer',
360
+ 'storage',
361
+ 'entryway',
362
+ 'hallway',
363
+ 'minimalist',
364
+ 'metal',
365
+ 'wood',
366
+ 'mudroom',
367
+ 'hooks',
368
+ 'clothes',
369
+ ],
370
+ thumbnail:
371
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coat-rack/thumbnail.png',
372
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coat-rack/model.glb',
373
+ floorPlanUrl:
374
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coat-rack/floor-plan.png',
375
+ dimensions: [0.33, 1.76, 0.33],
376
+ offset: [0, 0, 0],
377
+ rotation: [0, 0, 0],
378
+ scale: [1, 1, 1],
198
379
  },
199
-
200
380
  {
201
- id: 'door-bar',
202
- category: 'door',
203
- tags: ['wall'],
204
- name: 'Door with bar',
205
- thumbnail: '/items/door-bar/thumbnail.webp',
206
- src: '/items/door-bar/model.glb',
207
- scale: [1, 1, 1],
208
- offset: [-0.48, 0, 0],
381
+ id: 'car-toy',
382
+ category: 'furniture',
383
+ name: 'Car Toy',
384
+ tags: [
385
+ 'car',
386
+ 'toy',
387
+ 'vehicle',
388
+ 'racer',
389
+ 'play',
390
+ 'nursery',
391
+ 'playroom',
392
+ 'wooden',
393
+ 'vintage',
394
+ 'decor',
395
+ 'kids',
396
+ 'child',
397
+ 'classic',
398
+ 'miniature',
399
+ 'hobby',
400
+ ],
401
+ thumbnail:
402
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/car-toy/thumbnail.png',
403
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/car-toy/model.glb',
404
+ floorPlanUrl:
405
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/car-toy/floor-plan.png',
406
+ dimensions: [0.31, 0.38, 0.6],
407
+ offset: [0.0005, 0.0005, -0.0075],
209
408
  rotation: [0, 0, 0],
210
- dimensions: [1.5, 2.5, 0.5],
211
- attachTo: 'wall',
409
+ scale: [1, 1, 1],
212
410
  },
213
-
214
411
  {
215
- id: 'glass-door',
216
- category: 'door',
217
- tags: ['wall'],
218
- name: 'Glass Door',
219
- thumbnail: '/items/glass-door/thumbnail.webp',
220
- src: '/items/glass-door/model.glb',
221
- scale: [0.9, 0.9, 0.9],
222
- offset: [-0.52, 0, 0],
223
- rotation: [0, 0, 0],
224
- dimensions: [1.5, 2.5, 0.4],
225
- attachTo: 'wall',
412
+ id: 'bedside-table',
413
+ category: 'furniture',
414
+ name: 'Bedside Table',
415
+ tags: [
416
+ 'nightstand',
417
+ 'table',
418
+ 'bedroom',
419
+ 'storage',
420
+ 'wood',
421
+ 'modern',
422
+ 'minimalist',
423
+ 'stand',
424
+ 'drawer',
425
+ 'furniture',
426
+ 'cabinet',
427
+ 'bedside',
428
+ ],
429
+ thumbnail:
430
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bedside-table/thumbnail.png',
431
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bedside-table/model.glb',
432
+ floorPlanUrl:
433
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bedside-table/floor-plan.png',
434
+ dimensions: [0.45, 0.48, 0.46],
435
+ offset: [0.0005, 0, -0.0062],
436
+ rotation: [0, 0, 0],
437
+ scale: [1, 1, 1],
438
+ surface: { height: 0.48 },
226
439
  },
227
-
228
440
  {
229
- id: 'door',
230
- category: 'door',
231
- tags: ['wall'],
232
- name: 'Door',
233
- thumbnail: '/items/door/thumbnail.webp',
234
- src: '/items/door/model.glb',
235
- scale: [0.79, 0.79, 0.79],
236
- offset: [-0.43, 0, 0],
441
+ id: 'sofa',
442
+ category: 'furniture',
443
+ name: 'Sofa',
444
+ tags: ['floor', 'seating'],
445
+ thumbnail:
446
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sofa/thumbnail.png',
447
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sofa/model.glb',
448
+ floorPlanUrl:
449
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sofa/floor-plan.png',
450
+ dimensions: [2.06, 0.74, 1.01],
451
+ offset: [-0.0023, 0.009, 0.0459],
237
452
  rotation: [0, 0, 0],
238
- dimensions: [1.5, 2, 0.4],
239
- attachTo: 'wall',
453
+ scale: [1, 1, 1],
240
454
  },
241
-
242
455
  {
243
- id: 'parking-spot',
244
- category: 'outdoor',
245
- tags: ['leisure', 'floor'],
246
- name: 'Parking Spot',
247
- thumbnail: '/items/parking-spot/thumbnail.webp',
248
- src: '/items/parking-spot/model.glb',
249
- scale: [0.9, 1, 0.78],
250
- offset: [0, 0, 0.01],
456
+ id: 'bunkbed',
457
+ category: 'furniture',
458
+ name: 'Bunkbed',
459
+ tags: [
460
+ 'bunkbed',
461
+ 'bed',
462
+ 'sleeper',
463
+ 'loft',
464
+ 'bedroom',
465
+ 'kids',
466
+ 'wood',
467
+ 'metal',
468
+ 'modern',
469
+ 'sleeping',
470
+ 'ladder',
471
+ 'rustic',
472
+ 'dormitory',
473
+ 'furniture',
474
+ ],
475
+ thumbnail:
476
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bunkbed/thumbnail.png',
477
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bunkbed/model.glb',
478
+ floorPlanUrl:
479
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bunkbed/floor-plan.png',
480
+ dimensions: [1.65, 1.55, 0.99],
481
+ offset: [0, 0, -0.0886],
482
+ rotation: [0, 0, 0],
483
+ scale: [1, 1, 1],
484
+ },
485
+ {
486
+ id: 'my-leather-couch-modp80ha',
487
+ category: 'furniture',
488
+ name: 'My leather couch',
489
+ thumbnail:
490
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/my-leather-couch-modp80ha/thumbnail.png',
491
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/my-leather-couch-modp80ha/models/item_model_kgORhH5vwFK8xub0.glb',
492
+ floorPlanUrl:
493
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/my-leather-couch-modp80ha/floor-plan.png',
494
+ dimensions: [2, 0.67, 0.61],
495
+ offset: [-0.0005, 0.3228, -0.004],
251
496
  rotation: [0, 0, 0],
252
- dimensions: [5, 1, 2.5],
497
+ scale: [2, 2, 2],
253
498
  },
254
-
255
499
  {
256
- id: 'outdoor-playhouse',
257
- category: 'outdoor',
258
- tags: ['leisure', 'kids', 'floor'],
259
- name: 'Outdoor Playhouse',
260
- thumbnail: '/items/outdoor-playhouse/thumbnail.webp',
261
- src: '/items/outdoor-playhouse/model.glb',
262
- scale: [1, 1, 1],
263
- offset: [0, 0, 0],
264
- rotation: [0, 0, 0],
265
- dimensions: [0.5, 0.5, 1],
500
+ id: 'office-table',
501
+ category: 'furniture',
502
+ name: 'Office Table',
503
+ tags: [
504
+ 'desk',
505
+ 'table',
506
+ 'workstation',
507
+ 'furniture',
508
+ 'office',
509
+ 'work',
510
+ 'study',
511
+ 'writing',
512
+ 'modern',
513
+ 'minimalist',
514
+ 'industrial',
515
+ 'wood',
516
+ 'metal',
517
+ ],
518
+ thumbnail:
519
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/office-table/thumbnail.png',
520
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/office-table/model.glb',
521
+ floorPlanUrl:
522
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/office-table/floor-plan.png',
523
+ dimensions: [1.51, 0.76, 0.62],
524
+ offset: [-0.0001, 0, -0.0052],
525
+ rotation: [0, 0, 0],
526
+ scale: [1, 1, 1],
527
+ surface: { height: 0.75 },
266
528
  },
267
-
268
529
  {
269
- id: 'skate',
270
- category: 'outdoor',
271
- tags: ['leisure', 'kids', 'floor'],
272
- name: 'Skate',
273
- thumbnail: '/items/skate/thumbnail.webp',
274
- src: '/items/skate/model.glb',
275
- scale: [1, 1, 1],
276
- offset: [0, 0, 0],
277
- rotation: [0, 0, 0],
278
- dimensions: [1, 0.2, 0.5],
530
+ id: 'dining-table',
531
+ category: 'furniture',
532
+ name: 'Dining Table',
533
+ tags: [
534
+ 'table',
535
+ 'dining',
536
+ 'furniture',
537
+ 'wood',
538
+ 'modern',
539
+ 'minimalist',
540
+ 'kitchen',
541
+ 'eating',
542
+ 'surface',
543
+ 'contemporary',
544
+ 'gathering',
545
+ 'walnut',
546
+ ],
547
+ thumbnail:
548
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-table/thumbnail.png',
549
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-table/model.glb',
550
+ floorPlanUrl:
551
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-table/floor-plan.png',
552
+ dimensions: [2.16, 0.7, 0.95],
553
+ offset: [0, 0, -0.0077],
554
+ rotation: [0, 0, 0],
555
+ scale: [1, 1, 1],
556
+ surface: { height: 0.7 },
279
557
  },
280
-
281
558
  {
282
- id: 'scooter',
283
- category: 'outdoor',
284
- tags: ['leisure', 'kids', 'floor'],
285
- name: 'Scooter',
286
- thumbnail: '/items/scooter/thumbnail.webp',
287
- src: '/items/scooter/model.glb',
288
- scale: [1, 1, 1],
289
- offset: [0.11, 0, 0.17],
559
+ id: 'guitar',
560
+ category: 'furniture',
561
+ name: 'Guitar',
562
+ tags: [
563
+ 'guitar',
564
+ 'instrument',
565
+ 'musical',
566
+ 'wood',
567
+ 'acoustic',
568
+ 'vintage',
569
+ 'classic',
570
+ 'decor',
571
+ 'mahogany',
572
+ 'string',
573
+ 'art',
574
+ 'hobby',
575
+ ],
576
+ thumbnail:
577
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/guitar/thumbnail.png',
578
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/guitar/model.glb',
579
+ floorPlanUrl:
580
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/guitar/floor-plan.png',
581
+ dimensions: [0.4, 1.18, 0.09],
582
+ offset: [-0.0009, 0.3197, -0.0129],
290
583
  rotation: [0, 0, 0],
291
- dimensions: [1, 0.9, 0.5],
584
+ scale: [1, 1, 1],
292
585
  },
293
-
294
586
  {
295
- id: 'basket-hoop',
296
- category: 'outdoor',
297
- tags: ['leisure', 'sports', 'floor'],
298
- name: 'Basket Hoop',
299
- thumbnail: '/items/basket-hoop/thumbnail.webp',
300
- src: '/items/basket-hoop/model.glb',
301
- scale: [1, 1, 1],
587
+ id: 'trash-bin',
588
+ category: 'furniture',
589
+ name: 'Trash Bin',
590
+ tags: ['floor'],
591
+ thumbnail:
592
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/trash-bin/thumbnail.png',
593
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/trash-bin/model.glb',
594
+ floorPlanUrl:
595
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/trash-bin/floor-plan.png',
596
+ dimensions: [0.35, 0.59, 0.42],
302
597
  offset: [0, 0, 0],
303
598
  rotation: [0, 0, 0],
304
- dimensions: [1, 1.8, 1],
599
+ scale: [1, 1, 1],
305
600
  },
306
-
307
601
  {
308
- id: 'ball',
309
- category: 'outdoor',
310
- tags: ['leisure', 'sports', 'floor'],
311
- name: 'Ball',
312
- thumbnail: '/items/ball/thumbnail.webp',
313
- src: '/items/ball/model.glb',
314
- scale: [1, 1, 1],
315
- offset: [0, 0.12, 0],
602
+ id: 'recessed-light',
603
+ category: 'furniture',
604
+ name: 'Recessed Light',
605
+ tags: [
606
+ 'recessed',
607
+ 'downlight',
608
+ 'spotlight',
609
+ 'lighting',
610
+ 'fixture',
611
+ 'modern',
612
+ 'minimalist',
613
+ 'metal',
614
+ 'aluminum',
615
+ 'luminaire',
616
+ 'ambient',
617
+ 'illumination',
618
+ 'architectural',
619
+ 'can',
620
+ ],
621
+ thumbnail:
622
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/recessed-light/thumbnail.png',
623
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/recessed-light/model.glb',
624
+ floorPlanUrl:
625
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/recessed-light/floor-plan.png',
626
+ dimensions: [0.23, 0.06, 0.23],
627
+ offset: [0, 0.0057, 0],
316
628
  rotation: [0, 0, 0],
317
- dimensions: [0.5, 0.3, 0.5],
629
+ scale: [1, 1, 1],
630
+ attachTo: 'ceiling',
631
+ interactive: {
632
+ controls: [
633
+ { kind: 'toggle' },
634
+ {
635
+ kind: 'slider',
636
+ label: 'Intensity',
637
+ min: 0,
638
+ max: 100,
639
+ unit: '%',
640
+ displayMode: 'dial',
641
+ default: 100,
642
+ },
643
+ ],
644
+ effects: [{ kind: 'light', intensityRange: [0, 2], color: '#ffffff', offset: [0, -0.1, 0] }],
645
+ },
318
646
  },
319
-
320
647
  {
321
- id: 'wine-bottle',
322
- category: 'kitchen',
323
- tags: ['countertop', 'decor'],
324
- name: 'Wine Bottle',
325
- thumbnail: '/items/wine-bottle/thumbnail.webp',
326
- src: '/items/wine-bottle/model.glb',
327
- scale: [1, 1, 1],
328
- offset: [-0.05, 0, 0.01],
648
+ id: 'shelf',
649
+ category: 'furniture',
650
+ name: 'Shelf',
651
+ tags: [
652
+ 'shelf',
653
+ 'shelving',
654
+ 'rack',
655
+ 'ledge',
656
+ 'storage',
657
+ 'organization',
658
+ 'display',
659
+ 'bookshelf',
660
+ 'modern',
661
+ 'minimalist',
662
+ 'furniture',
663
+ 'decor',
664
+ 'contemporary',
665
+ ],
666
+ thumbnail:
667
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shelf/thumbnail.png',
668
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shelf/model.glb',
669
+ floorPlanUrl:
670
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shelf/floor-plan.png',
671
+ dimensions: [0.74, 0.04, 0.32],
672
+ offset: [0, 0.02, 0],
329
673
  rotation: [0, 0, 0],
330
- dimensions: [0.5, 0.4, 0.5],
674
+ scale: [1, 1, 1],
675
+ attachTo: 'wall-side',
676
+ surface: { height: 0.04 },
331
677
  },
332
-
333
678
  {
334
- id: 'fruits',
335
- category: 'kitchen',
336
- tags: ['countertop', 'decor'],
337
- name: 'Fruits',
338
- thumbnail: '/items/fruits/thumbnail.webp',
339
- src: '/items/fruits/model.glb',
340
- scale: [1, 1, 1],
679
+ id: 'table-lamp',
680
+ category: 'furniture',
681
+ name: 'Table Lamp',
682
+ tags: ['countertop', 'lighting'],
683
+ thumbnail:
684
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/table-lamp/thumbnail.png',
685
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/table-lamp/model.glb',
686
+ floorPlanUrl:
687
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/table-lamp/floor-plan.png',
688
+ dimensions: [0.29, 0.74, 0.67],
341
689
  offset: [0, 0, 0],
342
690
  rotation: [0, 0, 0],
343
- dimensions: [0.5, 0.3, 0.5],
691
+ scale: [1, 1, 1],
344
692
  },
345
-
346
693
  {
347
- id: 'cutting-board',
348
- category: 'kitchen',
349
- tags: ['countertop'],
350
- name: 'Cutting Board',
351
- thumbnail: '/items/cutting-board/thumbnail.webp',
352
- src: '/items/cutting-board/model.glb',
353
- scale: [1, 1, 1],
354
- offset: [0, 0, 0],
694
+ id: 'ceiling-lamp',
695
+ category: 'furniture',
696
+ name: 'Ceiling Lamp',
697
+ tags: [
698
+ 'lamp',
699
+ 'light',
700
+ 'chandelier',
701
+ 'pendant',
702
+ 'luminaire',
703
+ 'fixture',
704
+ 'lighting',
705
+ 'modern',
706
+ 'minimalist',
707
+ 'glass',
708
+ 'metal',
709
+ 'indoor',
710
+ 'illumination',
711
+ 'interior',
712
+ ],
713
+ thumbnail:
714
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ceiling-lamp/thumbnail.png',
715
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ceiling-lamp/model.glb',
716
+ floorPlanUrl:
717
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ceiling-lamp/floor-plan.png',
718
+ dimensions: [0.55, 0.86, 0.55],
719
+ offset: [0, 0.8545, 0],
355
720
  rotation: [0, 0, 0],
356
- dimensions: [0.5, 0.1, 0.5],
721
+ scale: [1, 1, 1],
722
+ attachTo: 'ceiling',
723
+ interactive: {
724
+ controls: [
725
+ { kind: 'toggle' },
726
+ {
727
+ kind: 'slider',
728
+ label: 'Intensity',
729
+ min: 0,
730
+ max: 100,
731
+ unit: '%',
732
+ displayMode: 'dial',
733
+ default: 100,
734
+ },
735
+ ],
736
+ effects: [{ kind: 'light', intensityRange: [0, 2], color: '#ffffff', offset: [0, -0.3, 0] }],
737
+ },
357
738
  },
358
-
359
739
  {
360
- id: 'frying-pan',
361
- category: 'kitchen',
362
- tags: ['countertop'],
363
- name: 'Frying Pan',
364
- thumbnail: '/items/frying-pan/thumbnail.webp',
365
- src: '/items/frying-pan/model.glb',
740
+ id: 'closet',
741
+ category: 'furniture',
742
+ name: 'Closet',
743
+ tags: [
744
+ 'closet',
745
+ 'wardrobe',
746
+ 'armoire',
747
+ 'cabinet',
748
+ 'storage',
749
+ 'organization',
750
+ 'wood',
751
+ 'bedroom',
752
+ 'modern',
753
+ 'minimalist',
754
+ 'clothing',
755
+ 'apparel',
756
+ 'cupboard',
757
+ 'locker',
758
+ ],
759
+ thumbnail:
760
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/closet/thumbnail.png',
761
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/closet/model.glb',
762
+ floorPlanUrl:
763
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/closet/floor-plan.png',
764
+ dimensions: [1.95, 2.26, 0.6],
765
+ offset: [0, 0, -0.0141],
766
+ rotation: [0, 0, 0],
366
767
  scale: [1, 1, 1],
367
- offset: [0, 0, 0],
768
+ },
769
+ {
770
+ id: 'coffee-table',
771
+ category: 'furniture',
772
+ name: 'Coffee Table',
773
+ tags: [
774
+ 'table',
775
+ 'cocktail',
776
+ 'wood',
777
+ 'modern',
778
+ 'minimalist',
779
+ 'furniture',
780
+ 'living',
781
+ 'lounge',
782
+ 'walnut',
783
+ 'metal',
784
+ 'glass',
785
+ 'surface',
786
+ 'decor',
787
+ ],
788
+ thumbnail:
789
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coffee-table/thumbnail.png',
790
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coffee-table/model.glb',
791
+ floorPlanUrl:
792
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coffee-table/floor-plan.png',
793
+ dimensions: [1.72, 0.3, 1.04],
794
+ offset: [0, 0, 0.0089],
795
+ rotation: [0, 0, 0],
796
+ scale: [1, 1, 1],
797
+ surface: { height: 0.3 },
798
+ },
799
+ {
800
+ id: 'dining-chair',
801
+ category: 'furniture',
802
+ name: 'Dining Chair',
803
+ tags: [
804
+ 'chair',
805
+ 'seating',
806
+ 'dining',
807
+ 'furniture',
808
+ 'modern',
809
+ 'wood',
810
+ 'upholstered',
811
+ 'kitchen',
812
+ 'seat',
813
+ 'minimalist',
814
+ 'timber',
815
+ 'bistro',
816
+ ],
817
+ thumbnail:
818
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-chair/thumbnail.png',
819
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-chair/model.glb',
820
+ floorPlanUrl:
821
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dining-chair/floor-plan.png',
822
+ dimensions: [0.47, 0.87, 0.5],
823
+ offset: [0, 0, 0.0016],
368
824
  rotation: [0, 0, 0],
369
- dimensions: [0.5, 0.1, 1],
825
+ scale: [1, 1, 1],
370
826
  },
371
-
372
827
  {
373
- id: 'kitchen-utensils',
374
- category: 'kitchen',
375
- tags: ['countertop'],
376
- name: 'Kitchen Utensils',
377
- thumbnail: '/items/kitchen-utensils/thumbnail.webp',
378
- src: '/items/kitchen-utensils/model.glb',
828
+ id: 'dresser',
829
+ category: 'furniture',
830
+ name: 'Dresser',
831
+ tags: [
832
+ 'dresser',
833
+ 'chest',
834
+ 'bureau',
835
+ 'storage',
836
+ 'bedroom',
837
+ 'drawers',
838
+ 'wood',
839
+ 'modern',
840
+ 'organization',
841
+ 'cabinet',
842
+ 'rustic',
843
+ 'minimalist',
844
+ ],
845
+ thumbnail:
846
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dresser/thumbnail.png',
847
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dresser/model.glb',
848
+ floorPlanUrl:
849
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/dresser/floor-plan.png',
850
+ dimensions: [1.23, 0.73, 0.61],
851
+ offset: [0, 0, -0.0066],
852
+ rotation: [0, 0, 0],
853
+ scale: [1, 1, 1],
854
+ surface: { height: 0.73 },
855
+ },
856
+ {
857
+ id: 'ikea-kallax-1x4-moa2y49n',
858
+ category: 'furniture',
859
+ name: 'Ikea Kallax 2x4',
860
+ tags: [
861
+ 'shelf',
862
+ 'bookcase',
863
+ 'shelving',
864
+ 'storage',
865
+ 'organizer',
866
+ 'cubby',
867
+ 'cube',
868
+ 'scandinavian',
869
+ 'modern',
870
+ 'minimalist',
871
+ 'wood',
872
+ 'laminate',
873
+ 'display',
874
+ 'modular',
875
+ ],
876
+ thumbnail:
877
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ikea-kallax-1x4-moa2y49n/thumbnail.png',
878
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ikea-kallax-1x4-moa2y49n/models/item_model_ocVHS1SWDex5DeYc.glb',
879
+ floorPlanUrl:
880
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ikea-kallax-1x4-moa2y49n/floor-plan.png',
881
+ dimensions: [1.09, 2.06, 0.55],
882
+ offset: [0, -0.0053, 0],
883
+ rotation: [0, 0, 0],
884
+ scale: [1.4, 1.4, 1.4],
885
+ },
886
+ {
887
+ id: 'indoor-plant',
888
+ category: 'furniture',
889
+ name: 'Indoor Plant',
890
+ tags: [
891
+ 'plant',
892
+ 'greenery',
893
+ 'botanical',
894
+ 'foliage',
895
+ 'houseplant',
896
+ 'organic',
897
+ 'natural',
898
+ 'modern',
899
+ 'minimalist',
900
+ 'tropical',
901
+ 'decor',
902
+ 'accent',
903
+ 'green',
904
+ 'ceramic',
905
+ ],
906
+ thumbnail:
907
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/indoor-plant/thumbnail.png',
908
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/indoor-plant/model.glb',
909
+ floorPlanUrl:
910
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/indoor-plant/floor-plan.png',
911
+ dimensions: [0.69, 1.63, 0.83],
912
+ offset: [-0.0506, 0, 0.0664],
913
+ rotation: [0, 0, 0],
379
914
  scale: [1, 1, 1],
915
+ },
916
+ {
917
+ id: 'ironing-board',
918
+ category: 'furniture',
919
+ name: 'Ironing Board',
920
+ tags: [
921
+ 'ironing',
922
+ 'board',
923
+ 'laundry',
924
+ 'foldable',
925
+ 'metal',
926
+ 'utility',
927
+ 'pressing',
928
+ 'collapsible',
929
+ 'stand',
930
+ 'table',
931
+ 'organization',
932
+ 'industrial',
933
+ ],
934
+ thumbnail:
935
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ironing-board/thumbnail.png',
936
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ironing-board/model.glb',
937
+ floorPlanUrl:
938
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ironing-board/floor-plan.png',
939
+ dimensions: [1.31, 0.96, 0.48],
380
940
  offset: [0, 0, 0],
381
941
  rotation: [0, 0, 0],
382
- dimensions: [0.5, 0.5, 0.5],
942
+ scale: [1, 1, 1],
383
943
  },
384
-
385
944
  {
386
- id: 'microwave',
387
- category: 'kitchen',
388
- tags: ['countertop', 'electronics'],
389
- name: 'Microwave',
390
- thumbnail: '/items/microwave/thumbnail.webp',
391
- src: '/items/microwave/model.glb',
392
- scale: [1, 1, 1],
393
- offset: [0, 0, -0.03],
945
+ id: 'double-bed',
946
+ category: 'furniture',
947
+ name: 'Double Bed',
948
+ tags: [
949
+ 'bed',
950
+ 'bedstead',
951
+ 'double',
952
+ 'frame',
953
+ 'bedroom',
954
+ 'sleeping',
955
+ 'modern',
956
+ 'minimalist',
957
+ 'upholstered',
958
+ 'wood',
959
+ 'sleep',
960
+ 'furniture',
961
+ 'contemporary',
962
+ ],
963
+ thumbnail:
964
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/double-bed/thumbnail.png',
965
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/double-bed/model.glb',
966
+ floorPlanUrl:
967
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/double-bed/floor-plan.png',
968
+ dimensions: [1.52, 0.71, 2],
969
+ offset: [0.0042, 0, -0.0277],
394
970
  rotation: [0, 0, 0],
395
- dimensions: [1, 0.3, 0.5],
971
+ scale: [1, 1, 1],
396
972
  },
397
-
398
973
  {
399
- id: 'stove',
400
- category: 'kitchen',
401
- tags: ['floor', 'large'],
402
- name: 'Stove',
403
- thumbnail: '/items/stove/thumbnail.webp',
404
- src: '/items/stove/model.glb',
974
+ id: 'floor-lamp',
975
+ category: 'furniture',
976
+ name: 'Floor Lamp',
977
+ tags: [
978
+ 'lamp',
979
+ 'luminaire',
980
+ 'light',
981
+ 'torchere',
982
+ 'lighting',
983
+ 'illumination',
984
+ 'metal',
985
+ 'brass',
986
+ 'modern',
987
+ 'minimalist',
988
+ 'industrial',
989
+ 'decor',
990
+ 'ambient',
991
+ 'reading',
992
+ 'sleek',
993
+ ],
994
+ thumbnail:
995
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/floor-lamp/thumbnail.png',
996
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/floor-lamp/model.glb',
997
+ floorPlanUrl:
998
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/floor-lamp/floor-plan.png',
999
+ dimensions: [0.7, 1.86, 0.69],
1000
+ offset: [0.0341, 0.0045, 0.0219],
1001
+ rotation: [0, 0, 0],
405
1002
  scale: [1, 1, 1],
406
- offset: [0, 0, -0.05],
1003
+ interactive: {
1004
+ controls: [
1005
+ { kind: 'toggle' },
1006
+ {
1007
+ kind: 'slider',
1008
+ label: 'Intensity',
1009
+ min: 0,
1010
+ max: 100,
1011
+ unit: '%',
1012
+ displayMode: 'dial',
1013
+ default: 100,
1014
+ },
1015
+ ],
1016
+ effects: [{ kind: 'light', intensityRange: [0, 2], color: '#ffffff', offset: [0, 1.4, 0] }],
1017
+ },
1018
+ },
1019
+ {
1020
+ id: 'herman-miller-aeron-mo8x36k9',
1021
+ category: 'furniture',
1022
+ name: 'Herman Miller Aeron',
1023
+ tags: ['office'],
1024
+ thumbnail:
1025
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/herman-miller-aeron-mo8x36k9/thumbnail.png',
1026
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/herman-miller-aeron-mo8x36k9/models/item_model_YshL4maC8cHtry5c.glb',
1027
+ floorPlanUrl:
1028
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/herman-miller-aeron-mo8x36k9/floor-plan.png',
1029
+ dimensions: [0.67, 1.06, 0.66],
1030
+ offset: [-0.0013, 0.5256, 0.0028],
407
1031
  rotation: [0, 0, 0],
408
- dimensions: [1, 1, 1],
1032
+ scale: [1.05, 1.05, 1.05],
409
1033
  },
410
-
411
1034
  {
412
- id: 'fridge',
413
- category: 'kitchen',
414
- tags: ['floor', 'large'],
415
- name: 'Fridge',
416
- thumbnail: '/items/fridge/thumbnail.webp',
417
- src: '/items/fridge/model.glb',
418
- scale: [1, 1, 1],
419
- offset: [0.01, 0, -0.05],
1035
+ id: 'easel',
1036
+ category: 'furniture',
1037
+ name: 'Easel',
1038
+ tags: [
1039
+ 'easel',
1040
+ 'stand',
1041
+ 'tripod',
1042
+ 'art',
1043
+ 'studio',
1044
+ 'wood',
1045
+ 'display',
1046
+ 'canvas',
1047
+ 'atelier',
1048
+ 'presentation',
1049
+ 'wooden',
1050
+ 'sketching',
1051
+ 'painting',
1052
+ 'decor',
1053
+ ],
1054
+ thumbnail:
1055
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/easel/thumbnail.png',
1056
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/easel/model.glb',
1057
+ floorPlanUrl:
1058
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/easel/floor-plan.png',
1059
+ dimensions: [0.99, 2.32, 0.55],
1060
+ offset: [0, 0.0402, 0.0116],
420
1061
  rotation: [0, 0, 0],
421
- dimensions: [1, 2, 1],
1062
+ scale: [1, 1, 1],
422
1063
  },
423
-
424
1064
  {
425
- id: 'hood',
426
- category: 'kitchen',
427
- tags: ['wall'],
428
- name: 'Hood',
429
- thumbnail: '/items/hood/thumbnail.webp',
430
- src: '/items/hood/model.glb',
1065
+ id: 'lounge-chair',
1066
+ category: 'furniture',
1067
+ name: 'Lounge Chair',
1068
+ tags: [
1069
+ 'chair',
1070
+ 'armchair',
1071
+ 'seating',
1072
+ 'lounge',
1073
+ 'seat',
1074
+ 'modern',
1075
+ 'contemporary',
1076
+ 'minimalist',
1077
+ 'comfort',
1078
+ 'relaxation',
1079
+ 'upholstered',
1080
+ 'interior',
1081
+ 'furniture',
1082
+ ],
1083
+ thumbnail:
1084
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/lounge-chair/thumbnail.png',
1085
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/lounge-chair/model.glb',
1086
+ floorPlanUrl:
1087
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/lounge-chair/floor-plan.png',
1088
+ dimensions: [0.68, 1.03, 1.26],
1089
+ offset: [0, 0.0034, 0.0894],
1090
+ rotation: [0, 0, 0],
431
1091
  scale: [1, 1, 1],
432
- offset: [0, 0.52, 0.01],
1092
+ },
1093
+ {
1094
+ id: 'office-chair',
1095
+ category: 'furniture',
1096
+ name: 'Office Chair',
1097
+ tags: [
1098
+ 'chair',
1099
+ 'seating',
1100
+ 'ergonomic',
1101
+ 'swivel',
1102
+ 'office',
1103
+ 'desk',
1104
+ 'mesh',
1105
+ 'leather',
1106
+ 'modern',
1107
+ 'task',
1108
+ 'workspace',
1109
+ 'professional',
1110
+ 'computer',
1111
+ ],
1112
+ thumbnail:
1113
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/office-chair/thumbnail.png',
1114
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/office-chair/model.glb',
1115
+ floorPlanUrl:
1116
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/office-chair/floor-plan.png',
1117
+ dimensions: [0.66, 1.16, 0.69],
1118
+ offset: [0.0024, 0.0015, 0.0332],
433
1119
  rotation: [0, 0, 0],
434
- dimensions: [1.5, 1, 1.1],
435
- attachTo: 'wall-side',
1120
+ scale: [1, 1, 1],
436
1121
  },
437
-
438
1122
  {
439
- id: 'kitchen-shelf',
440
- category: 'kitchen',
441
- tags: ['wall', 'storage'],
442
- name: 'Kitchen Shelf',
443
- thumbnail: '/items/kitchen-shelf/thumbnail.webp',
444
- src: '/items/kitchen-shelf/model.glb',
1123
+ id: 'piano',
1124
+ category: 'furniture',
1125
+ name: 'Piano',
1126
+ tags: [
1127
+ 'piano',
1128
+ 'instrument',
1129
+ 'musical',
1130
+ 'grand',
1131
+ 'upright',
1132
+ 'keyboard',
1133
+ 'wood',
1134
+ 'polished',
1135
+ 'lacquer',
1136
+ 'ebony',
1137
+ 'classic',
1138
+ 'traditional',
1139
+ 'music',
1140
+ 'entertainment',
1141
+ 'luxury',
1142
+ ],
1143
+ thumbnail:
1144
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/piano/thumbnail.png',
1145
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/piano/model.glb',
1146
+ floorPlanUrl:
1147
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/piano/floor-plan.png',
1148
+ dimensions: [1.54, 1.44, 0.69],
1149
+ offset: [0, 0, 0.0162],
1150
+ rotation: [0, 0, 0],
445
1151
  scale: [1, 1, 1],
446
- offset: [0, 0.52, 0.01],
1152
+ },
1153
+ {
1154
+ id: 'picture',
1155
+ category: 'furniture',
1156
+ name: 'Picture',
1157
+ tags: [
1158
+ 'picture',
1159
+ 'frame',
1160
+ 'art',
1161
+ 'artwork',
1162
+ 'print',
1163
+ 'canvas',
1164
+ 'decor',
1165
+ 'modern',
1166
+ 'abstract',
1167
+ 'minimalist',
1168
+ 'decorative',
1169
+ 'glass',
1170
+ 'wood',
1171
+ 'illustration',
1172
+ 'portrait',
1173
+ ],
1174
+ thumbnail:
1175
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/picture/thumbnail.png',
1176
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/picture/model.glb',
1177
+ floorPlanUrl:
1178
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/picture/floor-plan.png',
1179
+ dimensions: [1.47, 0.82, 0.06],
1180
+ offset: [0, 0.41, 0],
447
1181
  rotation: [0, 0, 0],
448
- dimensions: [2.5, 1, 1.1],
1182
+ scale: [1, 1, 1],
449
1183
  attachTo: 'wall-side',
450
1184
  },
451
-
452
1185
  {
453
- id: 'kitchen-counter',
454
- category: 'kitchen',
455
- tags: ['floor', 'large', 'storage'],
456
- name: 'Kitchen Counter',
457
- thumbnail: '/items/kitchen-counter/thumbnail.webp',
458
- src: '/items/kitchen-counter/model.glb',
459
- scale: [1, 1, 1],
1186
+ id: 'rectangular-carpet',
1187
+ category: 'furniture',
1188
+ name: 'Rectangular Carpet',
1189
+ tags: [
1190
+ 'carpet',
1191
+ 'rug',
1192
+ 'mat',
1193
+ 'textile',
1194
+ 'woven',
1195
+ 'rectangular',
1196
+ 'modern',
1197
+ 'wool',
1198
+ 'cotton',
1199
+ 'minimalist',
1200
+ 'decor',
1201
+ 'plush',
1202
+ ],
1203
+ thumbnail:
1204
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/rectangular-carpet/thumbnail.png',
1205
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/rectangular-carpet/model.glb',
1206
+ floorPlanUrl:
1207
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/rectangular-carpet/floor-plan.png',
1208
+ dimensions: [2.78, 0.04, 1.81],
460
1209
  offset: [0, 0, 0],
461
1210
  rotation: [0, 0, 0],
462
- dimensions: [2, 0.8, 1],
463
- surface: {
464
- height: 0.75,
465
- },
1211
+ scale: [1, 1, 1],
1212
+ surface: { height: 0.03 },
466
1213
  },
467
-
468
1214
  {
469
- id: 'kitchen-cabinet',
470
- category: 'kitchen',
471
- tags: ['floor', 'large', 'storage'],
472
- name: 'Kitchen Cabinet',
473
- thumbnail: '/items/kitchen-cabinet/thumbnail.webp',
474
- src: '/items/kitchen-cabinet/model.glb',
1215
+ id: 'round-mirror',
1216
+ category: 'furniture',
1217
+ name: 'Rounded Mirror',
1218
+ tags: [
1219
+ 'mirror',
1220
+ 'glass',
1221
+ 'reflective',
1222
+ 'circular',
1223
+ 'oval',
1224
+ 'modern',
1225
+ 'minimalist',
1226
+ 'contemporary',
1227
+ 'scandinavian',
1228
+ 'vanity',
1229
+ 'decor',
1230
+ 'curved',
1231
+ 'reflection',
1232
+ 'grooming',
1233
+ ],
1234
+ thumbnail:
1235
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/round-mirror/thumbnail.png',
1236
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/round-mirror/model.glb',
1237
+ floorPlanUrl:
1238
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/round-mirror/floor-plan.png',
1239
+ dimensions: [0.57, 0.57, 0.05],
1240
+ offset: [0, 0.2848, 0],
1241
+ rotation: [0, 0, 0],
475
1242
  scale: [1, 1, 1],
1243
+ attachTo: 'wall-side',
1244
+ },
1245
+ {
1246
+ id: 'round-carpet',
1247
+ category: 'furniture',
1248
+ name: 'Round Carpet',
1249
+ tags: [
1250
+ 'carpet',
1251
+ 'rug',
1252
+ 'mat',
1253
+ 'circular',
1254
+ 'modern',
1255
+ 'minimalist',
1256
+ 'scandinavian',
1257
+ 'textile',
1258
+ 'woven',
1259
+ 'decor',
1260
+ 'accent',
1261
+ 'wool',
1262
+ 'fiber',
1263
+ 'interior',
1264
+ ],
1265
+ thumbnail:
1266
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/round-carpet/thumbnail.png',
1267
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/round-carpet/model.glb',
1268
+ floorPlanUrl:
1269
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/round-carpet/floor-plan.png',
1270
+ dimensions: [1.99, 0.05, 1.99],
476
1271
  offset: [0, 0, 0],
477
1272
  rotation: [0, 0, 0],
478
- dimensions: [2, 1.1, 1],
479
- surface: {
480
- height: 1.1,
481
- },
1273
+ scale: [1, 1, 1],
1274
+ surface: { height: 0.04 },
482
1275
  },
483
-
484
1276
  {
485
- id: 'kitchen',
486
- category: 'kitchen',
487
- tags: ['floor', 'large'],
488
- name: 'Kitchen',
489
- thumbnail: '/items/kitchen/thumbnail.webp',
490
- src: '/items/kitchen/model.glb',
491
- scale: [1, 1, 1],
1277
+ id: 'threadmill',
1278
+ category: 'furniture',
1279
+ name: 'Threadmill',
1280
+ tags: ['floor', 'fitness'],
1281
+ thumbnail:
1282
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/threadmill/thumbnail.png',
1283
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/threadmill/model.glb',
1284
+ floorPlanUrl:
1285
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/threadmill/floor-plan.png',
1286
+ dimensions: [2.1, 1.45, 0.9],
492
1287
  offset: [0, 0, 0],
493
1288
  rotation: [0, 0, 0],
494
- dimensions: [2.5, 1.1, 1],
1289
+ scale: [1, 1, 1],
495
1290
  },
496
-
497
1291
  {
498
- id: 'toilet-paper',
499
- category: 'bathroom',
500
- tags: ['wall', 'decor'],
501
- name: 'Toilet Paper',
502
- thumbnail: '/items/toilet-paper/thumbnail.webp',
503
- src: '/items/toilet-paper/model.glb',
504
- scale: [1, 1, 1],
505
- offset: [0, 0.19, 0.12],
1292
+ id: 'standing-desk-mo8wgz95',
1293
+ category: 'furniture',
1294
+ name: 'Standing Desk',
1295
+ tags: ['office'],
1296
+ thumbnail:
1297
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/standing-desk-mo8wgz95/thumbnail.png',
1298
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/standing-desk-mo8wgz95/models/item_model_zzZ58018waP8VY6Z.glb',
1299
+ floorPlanUrl:
1300
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/standing-desk-mo8wgz95/floor-plan.png',
1301
+ dimensions: [1.41, 0.85, 0.68],
1302
+ offset: [0, 0.4203, 0.0019],
506
1303
  rotation: [0, 0, 0],
507
- dimensions: [0.5, 0.5, 0.5],
508
- attachTo: 'wall-side',
1304
+ scale: [1.4, 1.4, 1.4],
509
1305
  },
510
-
511
1306
  {
512
- id: 'shower-rug',
513
- category: 'bathroom',
514
- tags: ['floor', 'decor'],
515
- name: 'Shower Rug',
516
- thumbnail: '/items/shower-rug/thumbnail.webp',
517
- src: '/items/shower-rug/model.glb',
1307
+ id: 'sprinkler',
1308
+ category: 'appliance',
1309
+ name: 'Sprinkler',
1310
+ tags: ['ceiling', 'safety'],
1311
+ thumbnail:
1312
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sprinkler/thumbnail.png',
1313
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sprinkler/model.glb',
1314
+ floorPlanUrl:
1315
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sprinkler/floor-plan.png',
1316
+ dimensions: [0.09, 0.04, 0.09],
1317
+ offset: [0, 0.0386, 0],
1318
+ rotation: [Math.PI, 0, 0],
518
1319
  scale: [1, 1, 1],
519
- offset: [0, 0, 0],
520
- rotation: [0, 0, 0],
521
- dimensions: [1, 0.1, 0.5],
1320
+ attachTo: 'ceiling',
522
1321
  },
523
-
524
1322
  {
525
- id: 'laundry-bag',
526
- category: 'bathroom',
527
- tags: ['floor'],
528
- name: 'Laundry Bag',
529
- thumbnail: '/items/laundry-bag/thumbnail.webp',
530
- src: '/items/laundry-bag/model.glb',
531
- scale: [1, 1, 1],
532
- offset: [0, 0, 0],
1323
+ id: 'exit-sign',
1324
+ category: 'appliance',
1325
+ name: 'Exit Sign',
1326
+ tags: [
1327
+ 'sign',
1328
+ 'signage',
1329
+ 'exit',
1330
+ 'emergency',
1331
+ 'safety',
1332
+ 'wayfinding',
1333
+ 'directional',
1334
+ 'lighting',
1335
+ 'led',
1336
+ 'commercial',
1337
+ 'industrial',
1338
+ 'marker',
1339
+ 'egress',
1340
+ 'appliance',
1341
+ ],
1342
+ thumbnail:
1343
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/exit-sign/thumbnail.png',
1344
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/exit-sign/model.glb',
1345
+ floorPlanUrl:
1346
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/exit-sign/floor-plan.png',
1347
+ dimensions: [0.54, 0.27, 0.1],
1348
+ offset: [0, 0.0036, 0.0452],
533
1349
  rotation: [0, 0, 0],
534
- dimensions: [0.5, 0.8, 0.5],
1350
+ scale: [0.6, 0.5, 0.7],
1351
+ attachTo: 'wall-side',
535
1352
  },
536
-
537
1353
  {
538
- id: 'drying-rack',
539
- category: 'bathroom',
540
- tags: ['floor'],
541
- name: 'Drying Rack',
542
- thumbnail: '/items/drying-rack/thumbnail.webp',
543
- src: '/items/drying-rack/model.glb',
544
- scale: [1, 1, 1],
1354
+ id: 'sewing-machine',
1355
+ category: 'appliance',
1356
+ name: 'Sewing Machine',
1357
+ tags: [
1358
+ 'sewing',
1359
+ 'machine',
1360
+ 'appliance',
1361
+ 'tailor',
1362
+ 'craft',
1363
+ 'hobby',
1364
+ 'textile',
1365
+ 'metal',
1366
+ 'plastic',
1367
+ 'vintage',
1368
+ 'modern',
1369
+ 'industrial',
1370
+ 'mending',
1371
+ 'stitching',
1372
+ ],
1373
+ thumbnail:
1374
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sewing-machine/thumbnail.png',
1375
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sewing-machine/model.glb',
1376
+ floorPlanUrl:
1377
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sewing-machine/floor-plan.png',
1378
+ dimensions: [0.83, 0.68, 0.32],
545
1379
  offset: [0, 0, 0],
546
1380
  rotation: [0, 0, 0],
547
- dimensions: [2, 1.1, 1],
1381
+ scale: [1, 1, 1],
548
1382
  },
549
-
550
1383
  {
551
- id: 'washing-machine',
552
- category: 'bathroom',
553
- tags: ['floor', 'large', 'electronics'],
554
- name: 'Washing Machine',
555
- thumbnail: '/items/washing-machine/thumbnail.webp',
556
- src: '/items/washing-machine/model.glb',
557
- scale: [1, 1, 1],
1384
+ id: 'television',
1385
+ category: 'appliance',
1386
+ name: 'Television',
1387
+ tags: ['floor', 'electronics'],
1388
+ thumbnail:
1389
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/television/thumbnail.png',
1390
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/television/model.glb',
1391
+ floorPlanUrl:
1392
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/television/floor-plan.png',
1393
+ dimensions: [1.62, 1.07, 0.38],
558
1394
  offset: [0, 0, 0],
559
1395
  rotation: [0, 0, 0],
560
- dimensions: [1, 1, 1],
1396
+ scale: [1, 1, 1],
561
1397
  },
562
-
563
1398
  {
564
- id: 'toilet',
565
- category: 'bathroom',
566
- tags: ['floor', 'large'],
567
- name: 'Toilet',
568
- thumbnail: '/items/toilet/thumbnail.webp',
569
- src: '/items/toilet/model.glb',
570
- scale: [1, 1, 1],
571
- offset: [0, 0, -0.23],
572
- rotation: [0, 0, 0],
573
- dimensions: [1, 0.9, 1],
1399
+ id: 'power-outlet-moa09g0o',
1400
+ category: 'appliance',
1401
+ name: 'Power Outlet',
1402
+ tags: ['electric'],
1403
+ thumbnail:
1404
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/power-outlet-moa09g0o/thumbnail.png',
1405
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/power-outlet-moa09g0o/models/item_model_PTDhACPTrrrtLLeI.glb',
1406
+ floorPlanUrl:
1407
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/power-outlet-moa09g0o/floor-plan.png',
1408
+ dimensions: [0.09, 0.09, 0.03],
1409
+ offset: [0, 0.045, 0.0117],
1410
+ rotation: [0, 0, 0],
1411
+ scale: [0.09, 0.09, 0.09],
1412
+ attachTo: 'wall-side',
574
1413
  },
575
-
576
1414
  {
577
- id: 'shower-square',
578
- category: 'bathroom',
579
- tags: ['floor', 'large'],
580
- name: 'Squared Shower',
581
- thumbnail: '/items/shower-square/thumbnail.webp',
582
- src: '/items/shower-square/model.glb',
583
- scale: [1, 1, 1],
584
- offset: [0.41, 0, -0.42],
1415
+ id: 'ac-block',
1416
+ category: 'appliance',
1417
+ name: 'AC block',
1418
+ tags: [
1419
+ 'conditioner',
1420
+ 'cooler',
1421
+ 'hvac',
1422
+ 'cooling',
1423
+ 'appliance',
1424
+ 'vent',
1425
+ 'modern',
1426
+ 'minimalist',
1427
+ 'metal',
1428
+ 'industrial',
1429
+ 'white',
1430
+ 'utility',
1431
+ 'ventilation',
1432
+ 'unit',
1433
+ 'climate',
1434
+ ],
1435
+ thumbnail:
1436
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ac-block/thumbnail.png',
1437
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ac-block/model.glb',
1438
+ floorPlanUrl:
1439
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ac-block/floor-plan.png',
1440
+ dimensions: [1.06, 0.95, 1.06],
1441
+ offset: [0, 0, 0],
585
1442
  rotation: [0, 0, 0],
586
- dimensions: [1, 2, 1],
1443
+ scale: [0.79, 0.79, 0.79],
587
1444
  },
588
-
589
1445
  {
590
- id: 'shower-angle',
591
- category: 'bathroom',
592
- tags: ['floor', 'large'],
593
- name: 'Angle Shower',
594
- thumbnail: '/items/shower-angle/thumbnail.webp',
595
- src: '/items/shower-angle/model.glb',
596
- scale: [1, 1, 1],
597
- offset: [0.41, 0, -0.42],
1446
+ id: 'stereo-speaker',
1447
+ category: 'appliance',
1448
+ name: 'Stereo Speaker',
1449
+ tags: ['floor', 'electronics'],
1450
+ thumbnail:
1451
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stereo-speaker/thumbnail.png',
1452
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stereo-speaker/model.glb',
1453
+ floorPlanUrl:
1454
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stereo-speaker/floor-plan.png',
1455
+ dimensions: [0.23, 1, 0.34],
1456
+ offset: [0, 0, -0.0129],
598
1457
  rotation: [0, 0, 0],
599
- dimensions: [1, 2, 1],
1458
+ scale: [1, 1, 1],
600
1459
  },
601
-
602
1460
  {
603
- id: 'bathtub',
604
- category: 'bathroom',
605
- tags: ['floor', 'large'],
606
- name: 'Bathtub',
607
- thumbnail: '/items/bathtub/thumbnail.webp',
608
- src: '/items/bathtub/model.glb',
609
- scale: [1, 1, 1],
610
- offset: [0, 0, 0.01],
1461
+ id: 'thermostat',
1462
+ category: 'appliance',
1463
+ name: 'Thermostat',
1464
+ tags: ['wall', 'climate', 'electrical'],
1465
+ thumbnail:
1466
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/thermostat/thumbnail.png',
1467
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/thermostat/model.glb',
1468
+ floorPlanUrl:
1469
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/thermostat/floor-plan.png',
1470
+ dimensions: [0.1, 0.1, 0.01],
1471
+ offset: [0, 0.0013, 0.0022],
611
1472
  rotation: [0, 0, 0],
612
- dimensions: [2.5, 0.8, 1.5],
1473
+ scale: [2.08, 2.1, 2.59],
1474
+ attachTo: 'wall-side',
613
1475
  },
614
-
615
1476
  {
616
- id: 'bathroom-sink',
617
- category: 'bathroom',
618
- tags: ['floor', 'large'],
619
- name: 'Bathroom Sink',
620
- thumbnail: '/items/bathroom-sink/thumbnail.webp',
621
- src: '/items/bathroom-sink/model.glb',
622
- scale: [1, 1, 1],
623
- offset: [0.11, 0, 0.02],
1477
+ id: 'toaster',
1478
+ category: 'appliance',
1479
+ name: 'Toaster',
1480
+ tags: ['countertop', 'electronics'],
1481
+ thumbnail:
1482
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toaster/thumbnail.png',
1483
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toaster/model.glb',
1484
+ floorPlanUrl:
1485
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toaster/floor-plan.png',
1486
+ dimensions: [0.28, 0.23, 0.17],
1487
+ offset: [-0.0057, 0, 0],
624
1488
  rotation: [0, 0, 0],
625
- dimensions: [2, 1, 1.5],
1489
+ scale: [1, 1, 1],
626
1490
  },
627
-
628
1491
  {
629
- id: 'ceiling-fan',
1492
+ id: 'kettle',
630
1493
  category: 'appliance',
631
- tags: ['ceiling', 'climate'],
632
- name: 'Ceiling fan',
633
- thumbnail: '/items/ceiling-fan/thumbnail.webp',
634
- src: '/items/ceiling-fan/model.glb',
1494
+ name: 'Kettle',
1495
+ tags: [
1496
+ 'kettle',
1497
+ 'teapot',
1498
+ 'boiler',
1499
+ 'electric',
1500
+ 'kitchen',
1501
+ 'appliance',
1502
+ 'metal',
1503
+ 'steel',
1504
+ 'modern',
1505
+ 'tea',
1506
+ 'coffee',
1507
+ 'boiling',
1508
+ 'beverage',
1509
+ 'breakfast',
1510
+ ],
1511
+ thumbnail:
1512
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kettle/thumbnail.png',
1513
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kettle/model.glb',
1514
+ floorPlanUrl:
1515
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kettle/floor-plan.png',
1516
+ dimensions: [0.24, 0.25, 0.18],
1517
+ offset: [-0.026, 0, 0],
1518
+ rotation: [0, 0, 0],
635
1519
  scale: [1, 1, 1],
636
- offset: [-0.12, 0.49, 0],
1520
+ },
1521
+ {
1522
+ id: 'hydrant',
1523
+ category: 'appliance',
1524
+ name: 'Hydrant',
1525
+ tags: [
1526
+ 'hydrant',
1527
+ 'faucet',
1528
+ 'spigot',
1529
+ 'valve',
1530
+ 'metal',
1531
+ 'iron',
1532
+ 'industrial',
1533
+ 'vintage',
1534
+ 'retro',
1535
+ 'plumbing',
1536
+ 'water',
1537
+ 'utility',
1538
+ 'outdoor',
1539
+ 'garden',
1540
+ 'red',
1541
+ ],
1542
+ thumbnail:
1543
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/hydrant/thumbnail.png',
1544
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/hydrant/model.glb',
1545
+ floorPlanUrl:
1546
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/hydrant/floor-plan.png',
1547
+ dimensions: [0.64, 0.88, 0.64],
1548
+ offset: [-0.0046, 0, -0.0008],
637
1549
  rotation: [0, 0, 0],
638
- dimensions: [1, 0.5, 1.5],
639
- attachTo: 'ceiling',
640
- interactive: {
641
- effects: [
642
- {
643
- kind: 'animation',
644
- clips: {
645
- on: 'On',
646
- },
647
- },
648
- ],
649
- controls: [
650
- {
651
- kind: 'toggle',
652
- },
653
- ],
654
- },
1550
+ scale: [1, 1, 1],
655
1551
  },
656
-
657
1552
  {
658
- id: 'electric-panel',
1553
+ id: 'fire-detector',
659
1554
  category: 'appliance',
660
- tags: ['wall', 'electrical'],
661
- name: 'Electric Panel',
662
- thumbnail: '/items/electric-panel/thumbnail.webp',
663
- src: '/items/electric-panel/model.glb',
664
- scale: [0.61, 0.74, 0.7],
665
- offset: [0, 0, 0.06],
1555
+ name: 'Fire Detector',
1556
+ tags: [
1557
+ 'detector',
1558
+ 'alarm',
1559
+ 'sensor',
1560
+ 'smoke',
1561
+ 'alert',
1562
+ 'safety',
1563
+ 'security',
1564
+ 'protection',
1565
+ 'appliance',
1566
+ 'white',
1567
+ 'plastic',
1568
+ 'minimalist',
1569
+ 'modern',
1570
+ 'warning',
1571
+ 'electronic',
1572
+ ],
1573
+ thumbnail:
1574
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fire-detector/thumbnail.png',
1575
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fire-detector/model.glb',
1576
+ floorPlanUrl:
1577
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fire-detector/floor-plan.png',
1578
+ dimensions: [0.12, 0.19, 0.07],
1579
+ offset: [0.0281, 0.012, 0.0015],
666
1580
  rotation: [0, 0, 0],
667
- dimensions: [0.5, 1, 0.3],
668
- attachTo: 'wall-side',
1581
+ scale: [0.9, 1.4, 0.7],
1582
+ attachTo: 'wall',
669
1583
  },
670
-
671
1584
  {
672
- id: 'sprinkler',
1585
+ id: 'smoke-detector',
673
1586
  category: 'appliance',
1587
+ name: 'Smoke Detector',
674
1588
  tags: ['ceiling', 'safety'],
675
- name: 'Sprinkler',
676
- thumbnail: '/items/sprinkler/thumbnail.webp',
677
- src: '/items/sprinkler/model.glb',
1589
+ thumbnail:
1590
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/smoke-detector/thumbnail.png',
1591
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/smoke-detector/model.glb',
1592
+ floorPlanUrl:
1593
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/smoke-detector/floor-plan.png',
1594
+ dimensions: [0.16, 0.05, 0.16],
1595
+ offset: [0, 0.0492, 0],
1596
+ rotation: [Math.PI, 0, 0],
678
1597
  scale: [1, 1, 1],
679
- offset: [0, 0.45, 0],
680
- rotation: [0, 0, 0],
681
- dimensions: [0.5, 0.5, 0.5],
682
1598
  attachTo: 'ceiling',
683
1599
  },
684
-
685
1600
  {
686
- id: 'smoke-detector',
1601
+ id: 'coffee-machine',
687
1602
  category: 'appliance',
688
- tags: ['ceiling', 'safety'],
689
- name: 'Smoke Detector',
690
- thumbnail: '/items/smoke-detector/thumbnail.webp',
691
- src: '/items/smoke-detector/model.glb',
1603
+ name: 'Coffee Machine',
1604
+ tags: [
1605
+ 'coffee',
1606
+ 'machine',
1607
+ 'maker',
1608
+ 'espresso',
1609
+ 'brewer',
1610
+ 'kitchen',
1611
+ 'appliance',
1612
+ 'modern',
1613
+ 'metal',
1614
+ 'sleek',
1615
+ 'black',
1616
+ 'silver',
1617
+ 'beverage',
1618
+ 'brewing',
1619
+ ],
1620
+ thumbnail:
1621
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coffee-machine/thumbnail.png',
1622
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coffee-machine/model.glb',
1623
+ floorPlanUrl:
1624
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/coffee-machine/floor-plan.png',
1625
+ dimensions: [0.16, 0.24, 0.23],
1626
+ offset: [0.0003, 0.0003, -0.0366],
1627
+ rotation: [0, 0, 0],
1628
+ scale: [1, 1, 1],
1629
+ },
1630
+ {
1631
+ id: 'ceiling-fan',
1632
+ category: 'appliance',
1633
+ name: 'Ceiling fan',
1634
+ tags: [
1635
+ 'fan',
1636
+ 'ventilator',
1637
+ 'cooling',
1638
+ 'airflow',
1639
+ 'blades',
1640
+ 'modern',
1641
+ 'industrial',
1642
+ 'metal',
1643
+ 'wood',
1644
+ 'appliance',
1645
+ 'ventilation',
1646
+ 'breeze',
1647
+ 'climate',
1648
+ 'circulation',
1649
+ ],
1650
+ thumbnail:
1651
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ceiling-fan/thumbnail.png',
1652
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ceiling-fan/model.glb',
1653
+ floorPlanUrl:
1654
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ceiling-fan/floor-plan.png',
1655
+ dimensions: [0.92, 0.35, 1.04],
1656
+ offset: [-0.1371, 0.3448, 0],
1657
+ rotation: [0, 0, 0],
692
1658
  scale: [1, 1, 1],
693
- offset: [0, 0.49, 0],
694
- rotation: [Math.PI, 0, 0],
695
- dimensions: [0.5, 0.5, 0.5],
696
1659
  attachTo: 'ceiling',
1660
+ interactive: {
1661
+ controls: [{ kind: 'toggle' }],
1662
+ effects: [{ kind: 'animation', clips: { on: 'On' } }],
1663
+ },
697
1664
  },
698
-
699
1665
  {
700
- id: 'fire-detector',
1666
+ id: 'iron',
701
1667
  category: 'appliance',
702
- tags: ['wall', 'safety'],
703
- name: 'Fire Detector',
704
- thumbnail: '/items/fire-detector/thumbnail.webp',
705
- src: '/items/fire-detector/model.glb',
706
- scale: [0.9, 1.4, 0.7],
707
- offset: [0.02, 0.05, 0],
1668
+ name: 'Iron',
1669
+ tags: [
1670
+ 'iron',
1671
+ 'steamer',
1672
+ 'laundry',
1673
+ 'clothing',
1674
+ 'modern',
1675
+ 'metal',
1676
+ 'plastic',
1677
+ 'ceramic',
1678
+ 'garment',
1679
+ 'pressing',
1680
+ 'household',
1681
+ 'utility',
1682
+ 'appliance',
1683
+ 'sleek',
1684
+ ],
1685
+ thumbnail:
1686
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/iron/thumbnail.png',
1687
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/iron/model.glb',
1688
+ floorPlanUrl:
1689
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/iron/floor-plan.png',
1690
+ dimensions: [0.36, 0.24, 0.21],
1691
+ offset: [0.026, 0, 0],
708
1692
  rotation: [0, 0, 0],
709
- dimensions: [0.5, 0.5, 0.3],
710
- attachTo: 'wall',
1693
+ scale: [1, 1, 1],
711
1694
  },
712
-
713
1695
  {
714
- id: 'exit-sign',
1696
+ id: 'air-conditioning',
715
1697
  category: 'appliance',
716
- tags: ['wall', 'safety'],
717
- name: 'Exit Sign',
718
- thumbnail: '/items/exit-sign/thumbnail.webp',
719
- src: '/items/exit-sign/model.glb',
720
- scale: [0.6, 0.5, 0.7],
721
- offset: [0, 0.04, 0.05],
1698
+ name: 'Air Conditioning',
1699
+ tags: [
1700
+ 'conditioner',
1701
+ 'cooling',
1702
+ 'hvac',
1703
+ 'appliance',
1704
+ 'electronic',
1705
+ 'modern',
1706
+ 'minimalist',
1707
+ 'white',
1708
+ 'climate',
1709
+ 'temperature',
1710
+ 'ventilation',
1711
+ 'airflow',
1712
+ 'comfort',
1713
+ 'sleek',
1714
+ ],
1715
+ thumbnail:
1716
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/air-conditioning/thumbnail.png',
1717
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/air-conditioning/model.glb',
1718
+ floorPlanUrl:
1719
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/air-conditioning/floor-plan.png',
1720
+ dimensions: [1.56, 0.6, 0.41],
1721
+ offset: [0, 0.3, 0.2018],
722
1722
  rotation: [0, 0, 0],
723
- dimensions: [1, 0.5, 0.3],
1723
+ scale: [1, 1, 1],
724
1724
  attachTo: 'wall-side',
725
1725
  },
726
-
727
1726
  {
728
- id: 'hydrant',
1727
+ id: 'computer',
729
1728
  category: 'appliance',
730
- tags: ['floor', 'safety'],
731
- name: 'Hydrant',
732
- thumbnail: '/items/hydrant/thumbnail.webp',
733
- src: '/items/hydrant/model.glb',
734
- scale: [1, 1, 1],
1729
+ name: 'Computer',
1730
+ tags: [
1731
+ 'computer',
1732
+ 'desktop',
1733
+ 'workstation',
1734
+ 'monitor',
1735
+ 'technology',
1736
+ 'office',
1737
+ 'electronics',
1738
+ 'modern',
1739
+ 'sleek',
1740
+ 'metal',
1741
+ 'silver',
1742
+ 'minimalist',
1743
+ 'hardware',
1744
+ 'productivity',
1745
+ ],
1746
+ thumbnail:
1747
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/computer/thumbnail.png',
1748
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/computer/model.glb',
1749
+ floorPlanUrl:
1750
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/computer/floor-plan.png',
1751
+ dimensions: [0.68, 0.48, 0.19],
735
1752
  offset: [0, 0, 0],
736
1753
  rotation: [0, 0, 0],
737
- dimensions: [1, 0.9, 1],
1754
+ scale: [1, 1, 1],
738
1755
  },
739
-
740
1756
  {
741
1757
  id: 'alarm-keypad',
742
1758
  category: 'appliance',
743
- tags: ['wall', 'safety', 'electrical'],
744
1759
  name: 'Alarm Keypad',
745
- thumbnail: '/items/alarm-keypad/thumbnail.webp',
746
- src: '/items/alarm-keypad/model.glb',
1760
+ tags: [
1761
+ 'alarm',
1762
+ 'keypad',
1763
+ 'panel',
1764
+ 'security',
1765
+ 'interface',
1766
+ 'controller',
1767
+ 'modern',
1768
+ 'minimalist',
1769
+ 'digital',
1770
+ 'plastic',
1771
+ 'white',
1772
+ 'electronic',
1773
+ 'safety',
1774
+ 'automation',
1775
+ 'smart',
1776
+ ],
1777
+ thumbnail:
1778
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/alarm-keypad/thumbnail.png',
1779
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/alarm-keypad/model.glb',
1780
+ floorPlanUrl:
1781
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/alarm-keypad/floor-plan.png',
1782
+ dimensions: [0.18, 0.13, 0.03],
1783
+ offset: [0, 0.0671, -0.0002],
1784
+ rotation: [1.5708, 0, 0],
747
1785
  scale: [1, 1, 1],
748
- offset: [0, 0, 0],
749
- rotation: [0, 0, 0],
750
- dimensions: [0.5, 0.1, 0.5],
1786
+ attachTo: 'wall-side',
751
1787
  },
752
-
753
1788
  {
754
- id: 'thermostat',
1789
+ id: 'ev-wall-charger',
755
1790
  category: 'appliance',
756
- tags: ['wall', 'climate', 'electrical'],
757
- name: 'Thermostat',
758
- thumbnail: '/items/thermostat/thumbnail.webp',
759
- src: '/items/thermostat/model.glb',
760
- scale: [2.08, 2.1, 2.59],
761
- offset: [0, 0, 0.01],
1791
+ name: 'Ev-wall-charger',
1792
+ tags: [
1793
+ 'charger',
1794
+ 'station',
1795
+ 'electric',
1796
+ 'vehicle',
1797
+ 'automotive',
1798
+ 'garage',
1799
+ 'modern',
1800
+ 'minimalist',
1801
+ 'power',
1802
+ 'energy',
1803
+ 'appliance',
1804
+ 'tech',
1805
+ 'sleek',
1806
+ 'plastic',
1807
+ 'black',
1808
+ ],
1809
+ thumbnail:
1810
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ev-wall-charger/thumbnail.png',
1811
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ev-wall-charger/model.glb',
1812
+ floorPlanUrl:
1813
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ev-wall-charger/floor-plan.png',
1814
+ dimensions: [0.29, 0.65, 0.17],
1815
+ offset: [-0.0677, 0.2979, 0.1503],
762
1816
  rotation: [0, 0, 0],
763
- dimensions: [0.5, 0.5, 0.1],
764
- attachTo: 'wall-side',
1817
+ scale: [1, 1, 1],
1818
+ attachTo: 'wall',
765
1819
  },
766
-
767
1820
  {
768
- id: 'air-conditioning',
1821
+ id: 'electric-panel',
769
1822
  category: 'appliance',
770
- tags: ['wall', 'climate'],
771
- name: 'Air Conditioning',
772
- thumbnail: '/items/air-conditioning/thumbnail.webp',
773
- src: '/items/air-conditioning/model.glb',
774
- scale: [1, 1, 1],
775
- offset: [0, 0.37, 0.21],
1823
+ name: 'Electric Panel',
1824
+ tags: [
1825
+ 'breaker',
1826
+ 'box',
1827
+ 'fusebox',
1828
+ 'electrical',
1829
+ 'utility',
1830
+ 'industrial',
1831
+ 'metal',
1832
+ 'steel',
1833
+ 'power',
1834
+ 'circuit',
1835
+ 'technical',
1836
+ 'maintenance',
1837
+ 'energy',
1838
+ 'appliance',
1839
+ ],
1840
+ thumbnail:
1841
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/electric-panel/thumbnail.png',
1842
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/electric-panel/model.glb',
1843
+ floorPlanUrl:
1844
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/electric-panel/floor-plan.png',
1845
+ dimensions: [0.4, 0.98, 0.11],
1846
+ offset: [0, 0.0036, 0.0611],
776
1847
  rotation: [0, 0, 0],
777
- dimensions: [2, 1, 0.9],
1848
+ scale: [0.61, 0.74, 0.7],
778
1849
  attachTo: 'wall-side',
779
1850
  },
780
-
781
1851
  {
782
- id: 'ac-block',
783
- category: 'appliance',
784
- tags: ['floor', 'climate'],
785
- name: 'AC block',
786
- thumbnail: '/items/ac-block/thumbnail.webp',
787
- src: '/items/ac-block/model.glb',
788
- scale: [0.79, 0.79, 0.79],
789
- offset: [0, 0, 0],
1852
+ id: 'bathroom-sink',
1853
+ category: 'bathroom',
1854
+ name: 'Bathroom Sink',
1855
+ tags: [
1856
+ 'sink',
1857
+ 'basin',
1858
+ 'lavatory',
1859
+ 'washbasin',
1860
+ 'vanity',
1861
+ 'modern',
1862
+ 'minimalist',
1863
+ 'ceramic',
1864
+ 'porcelain',
1865
+ 'white',
1866
+ 'plumbing',
1867
+ 'washing',
1868
+ 'bathroom',
1869
+ 'hygiene',
1870
+ ],
1871
+ thumbnail:
1872
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bathroom-sink/thumbnail.png',
1873
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bathroom-sink/model.glb',
1874
+ floorPlanUrl:
1875
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bathroom-sink/floor-plan.png',
1876
+ dimensions: [1.83, 0.97, 0.63],
1877
+ offset: [0.1037, 0, 0.0221],
790
1878
  rotation: [0, 0, 0],
791
- dimensions: [1.1, 1, 1.1],
1879
+ scale: [1, 1, 1],
792
1880
  },
793
-
794
1881
  {
795
- id: 'toaster',
796
- category: 'appliance',
797
- tags: ['countertop', 'electronics'],
798
- name: 'Toaster',
799
- thumbnail: '/items/toaster/thumbnail.webp',
800
- src: '/items/toaster/model.glb',
801
- scale: [1, 1, 1],
802
- offset: [0, 0, 0],
1882
+ id: 'shower-angle',
1883
+ category: 'bathroom',
1884
+ name: 'Angle Shower',
1885
+ tags: [
1886
+ 'shower',
1887
+ 'enclosure',
1888
+ 'cubicle',
1889
+ 'modern',
1890
+ 'glass',
1891
+ 'corner',
1892
+ 'bathroom',
1893
+ 'chrome',
1894
+ 'minimalist',
1895
+ 'washing',
1896
+ 'hygiene',
1897
+ 'plumbing',
1898
+ 'stall',
1899
+ 'sleek',
1900
+ ],
1901
+ thumbnail:
1902
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-angle/thumbnail.png',
1903
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-angle/model.glb',
1904
+ floorPlanUrl:
1905
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-angle/floor-plan.png',
1906
+ dimensions: [0.83, 1.81, 0.83],
1907
+ offset: [0.4102, 0, -0.4102],
803
1908
  rotation: [0, 0, 0],
804
- dimensions: [0.5, 0.3, 0.5],
1909
+ scale: [1, 1, 1],
805
1910
  },
806
-
807
1911
  {
808
- id: 'sewing-machine',
809
- category: 'appliance',
810
- tags: ['countertop', 'electronics'],
811
- name: 'Sewing Machine',
812
- thumbnail: '/items/sewing-machine/thumbnail.webp',
813
- src: '/items/sewing-machine/model.glb',
814
- scale: [1, 1, 1],
815
- offset: [0, 0, 0],
1912
+ id: 'toilet-paper',
1913
+ category: 'bathroom',
1914
+ name: 'Toilet Paper',
1915
+ tags: ['wall', 'decor'],
1916
+ thumbnail:
1917
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toilet-paper/thumbnail.png',
1918
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toilet-paper/model.glb',
1919
+ floorPlanUrl:
1920
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toilet-paper/floor-plan.png',
1921
+ dimensions: [0.26, 0.27, 0.24],
1922
+ offset: [0, 0.145, 0.1147],
816
1923
  rotation: [0, 0, 0],
817
- dimensions: [1, 0.7, 0.5],
1924
+ scale: [1, 1, 1],
1925
+ attachTo: 'wall-side',
818
1926
  },
819
-
820
1927
  {
821
- id: 'kettle',
822
- category: 'appliance',
823
- tags: ['countertop', 'electronics'],
824
- name: 'Kettle',
825
- thumbnail: '/items/kettle/thumbnail.webp',
826
- src: '/items/kettle/model.glb',
1928
+ id: 'washing-machine',
1929
+ category: 'bathroom',
1930
+ name: 'Washing Machine',
1931
+ tags: ['floor', 'large', 'electronics'],
1932
+ thumbnail:
1933
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/washing-machine/thumbnail.png',
1934
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/washing-machine/model.glb',
1935
+ floorPlanUrl:
1936
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/washing-machine/floor-plan.png',
1937
+ dimensions: [0.6, 0.86, 0.53],
1938
+ offset: [0, 0, -0.0114],
1939
+ rotation: [0, 0, 0],
827
1940
  scale: [1, 1, 1],
1941
+ },
1942
+ {
1943
+ id: 'shower-rug',
1944
+ category: 'bathroom',
1945
+ name: 'Shower Rug',
1946
+ tags: [
1947
+ 'rug',
1948
+ 'mat',
1949
+ 'bathmat',
1950
+ 'absorbent',
1951
+ 'cotton',
1952
+ 'chenille',
1953
+ 'modern',
1954
+ 'soft',
1955
+ 'minimalist',
1956
+ 'spa',
1957
+ 'bathroom',
1958
+ 'hygiene',
1959
+ 'plush',
1960
+ 'microfiber',
1961
+ 'woven',
1962
+ ],
1963
+ thumbnail:
1964
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-rug/thumbnail.png',
1965
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-rug/model.glb',
1966
+ floorPlanUrl:
1967
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-rug/floor-plan.png',
1968
+ dimensions: [0.77, 0.03, 0.48],
828
1969
  offset: [0, 0, 0],
829
1970
  rotation: [0, 0, 0],
830
- dimensions: [0.5, 0.3, 0.5],
1971
+ scale: [1, 1, 1],
1972
+ surface: { height: 0.03 },
831
1973
  },
832
-
833
1974
  {
834
- id: 'iron',
835
- category: 'appliance',
836
- tags: ['countertop', 'electronics'],
837
- name: 'Iron',
838
- thumbnail: '/items/iron/thumbnail.webp',
839
- src: '/items/iron/model.glb',
840
- scale: [1, 1, 1],
1975
+ id: 'bathtub',
1976
+ category: 'bathroom',
1977
+ name: 'Bathtub',
1978
+ tags: [
1979
+ 'bathtub',
1980
+ 'tub',
1981
+ 'bath',
1982
+ 'soaking',
1983
+ 'modern',
1984
+ 'minimalist',
1985
+ 'porcelain',
1986
+ 'acrylic',
1987
+ 'ceramic',
1988
+ 'bathroom',
1989
+ 'relaxation',
1990
+ 'spa',
1991
+ ],
1992
+ thumbnail:
1993
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bathtub/thumbnail.png',
1994
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bathtub/model.glb',
1995
+ floorPlanUrl:
1996
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bathtub/floor-plan.png',
1997
+ dimensions: [2.34, 0.79, 1.11],
841
1998
  offset: [0, 0, 0],
842
1999
  rotation: [0, 0, 0],
843
- dimensions: [0.5, 0.3, 0.5],
2000
+ scale: [1, 1, 1],
844
2001
  },
845
-
846
2002
  {
847
- id: 'coffee-machine',
848
- category: 'appliance',
849
- tags: ['countertop', 'electronics'],
850
- name: 'Coffee Machine',
851
- thumbnail: '/items/coffee-machine/thumbnail.webp',
852
- src: '/items/coffee-machine/model.glb',
853
- scale: [1, 1, 1],
854
- offset: [0, 0, -0.03],
2003
+ id: 'laundry-bag',
2004
+ category: 'bathroom',
2005
+ name: 'Laundry Bag',
2006
+ tags: [
2007
+ 'laundry',
2008
+ 'bag',
2009
+ 'hamper',
2010
+ 'basket',
2011
+ 'canvas',
2012
+ 'fabric',
2013
+ 'storage',
2014
+ 'organization',
2015
+ 'modern',
2016
+ 'minimalist',
2017
+ 'utility',
2018
+ 'cleaning',
2019
+ 'linen',
2020
+ ],
2021
+ thumbnail:
2022
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/laundry-bag/thumbnail.png',
2023
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/laundry-bag/model.glb',
2024
+ floorPlanUrl:
2025
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/laundry-bag/floor-plan.png',
2026
+ dimensions: [0.46, 0.78, 0.48],
2027
+ offset: [0, 0, -0.0006],
855
2028
  rotation: [0, 0, 0],
856
- dimensions: [0.5, 0.3, 0.5],
2029
+ scale: [1, 1, 1],
857
2030
  },
858
-
859
2031
  {
860
- id: 'television',
861
- category: 'appliance',
862
- tags: ['floor', 'electronics'],
863
- name: 'Television',
864
- thumbnail: '/items/television/thumbnail.webp',
865
- src: '/items/television/model.glb',
866
- scale: [1, 1, 1],
867
- offset: [0, 0, 0],
2032
+ id: 'shower-square',
2033
+ category: 'bathroom',
2034
+ name: 'Squared Shower',
2035
+ tags: ['floor', 'large'],
2036
+ thumbnail:
2037
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-square/thumbnail.png',
2038
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-square/model.glb',
2039
+ floorPlanUrl:
2040
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/shower-square/floor-plan.png',
2041
+ dimensions: [0.81, 1.8, 0.81],
2042
+ offset: [0.4, 0, -0.3995],
868
2043
  rotation: [0, 0, 0],
869
- dimensions: [2, 1.1, 0.5],
2044
+ scale: [1, 1, 1],
870
2045
  },
871
-
872
2046
  {
873
- id: 'computer',
874
- category: 'appliance',
875
- tags: ['countertop', 'electronics'],
876
- name: 'Computer',
877
- thumbnail: '/items/computer/thumbnail.webp',
878
- src: '/items/computer/model.glb',
879
- scale: [1, 1, 1],
880
- offset: [0.01, 0, 0],
2047
+ id: 'drying-rack',
2048
+ category: 'bathroom',
2049
+ name: 'Drying Rack',
2050
+ tags: [
2051
+ 'dryer',
2052
+ 'rack',
2053
+ 'airer',
2054
+ 'laundry',
2055
+ 'hanging',
2056
+ 'organizer',
2057
+ 'metal',
2058
+ 'steel',
2059
+ 'modern',
2060
+ 'minimalist',
2061
+ 'storage',
2062
+ 'bathroom',
2063
+ ],
2064
+ thumbnail:
2065
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/drying-rack/thumbnail.png',
2066
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/drying-rack/model.glb',
2067
+ floorPlanUrl:
2068
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/drying-rack/floor-plan.png',
2069
+ dimensions: [1.79, 1.05, 0.58],
2070
+ offset: [0, -0.0058, 0],
881
2071
  rotation: [0, 0, 0],
882
- dimensions: [1, 0.5, 0.5],
2072
+ scale: [1, 1, 1],
883
2073
  },
884
-
885
2074
  {
886
- id: 'stereo-speaker',
887
- category: 'appliance',
888
- tags: ['floor', 'electronics'],
889
- name: 'Stereo Speaker',
890
- thumbnail: '/items/stereo-speaker/thumbnail.webp',
891
- src: '/items/stereo-speaker/model.glb',
892
- scale: [1, 1, 1],
893
- offset: [0.02, 0, -0.01],
2075
+ id: 'toilet',
2076
+ category: 'bathroom',
2077
+ name: 'Toilet',
2078
+ tags: ['floor', 'large'],
2079
+ thumbnail:
2080
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toilet/thumbnail.png',
2081
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toilet/model.glb',
2082
+ floorPlanUrl:
2083
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/toilet/floor-plan.png',
2084
+ dimensions: [0.42, 0.82, 0.72],
2085
+ offset: [0, 0, -0.2393],
894
2086
  rotation: [0, 0, 0],
895
- dimensions: [0.5, 1.1, 0.5],
2087
+ scale: [1, 1, 1],
896
2088
  },
897
-
898
2089
  {
899
- id: 'threadmill',
900
- category: 'furniture',
901
- tags: ['floor', 'fitness'],
902
- name: 'Threadmill',
903
- thumbnail: '/items/threadmill/thumbnail.webp',
904
- src: '/items/threadmill/model.glb',
905
- scale: [1, 1, 1],
906
- offset: [0, 0, 0],
2090
+ id: 'microwave',
2091
+ category: 'kitchen',
2092
+ name: 'Microwave',
2093
+ tags: [
2094
+ 'microwave',
2095
+ 'oven',
2096
+ 'appliance',
2097
+ 'kitchen',
2098
+ 'cooking',
2099
+ 'heating',
2100
+ 'metal',
2101
+ 'steel',
2102
+ 'modern',
2103
+ 'sleek',
2104
+ 'black',
2105
+ 'silver',
2106
+ 'electronics',
2107
+ 'glass',
2108
+ 'contemporary',
2109
+ ],
2110
+ thumbnail:
2111
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/microwave/thumbnail.png',
2112
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/microwave/model.glb',
2113
+ floorPlanUrl:
2114
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/microwave/floor-plan.png',
2115
+ dimensions: [0.52, 0.27, 0.41],
2116
+ offset: [0, 0, -0.0225],
907
2117
  rotation: [0, 0, 0],
908
- dimensions: [2.5, 1.5, 1],
2118
+ scale: [1, 1, 1],
909
2119
  },
910
-
911
2120
  {
912
- id: 'barbell-stand',
913
- category: 'furniture',
914
- tags: ['floor', 'fitness'],
915
- name: 'Barbell Stand',
916
- thumbnail: '/items/barbell-stand/thumbnail.webp',
917
- src: '/items/barbell-stand/model.glb',
918
- scale: [1, 1, 1],
2121
+ id: 'cutting-board',
2122
+ category: 'kitchen',
2123
+ name: 'Cutting Board',
2124
+ tags: [
2125
+ 'board',
2126
+ 'wood',
2127
+ 'kitchen',
2128
+ 'prep',
2129
+ 'chopping',
2130
+ 'serving',
2131
+ 'block',
2132
+ 'rustic',
2133
+ 'culinary',
2134
+ 'timber',
2135
+ 'natural',
2136
+ 'chef',
2137
+ 'cooking',
2138
+ ],
2139
+ thumbnail:
2140
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/cutting-board/thumbnail.png',
2141
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/cutting-board/model.glb',
2142
+ floorPlanUrl:
2143
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/cutting-board/floor-plan.png',
2144
+ dimensions: [0.27, 0.07, 0.41],
919
2145
  offset: [0, 0, 0],
920
2146
  rotation: [0, 0, 0],
921
- dimensions: [1.5, 1.3, 2],
2147
+ scale: [1, 1, 1],
922
2148
  },
923
-
924
2149
  {
925
- id: 'barbell',
926
- category: 'furniture',
927
- tags: ['floor', 'fitness'],
928
- name: 'Barbell',
929
- thumbnail: '/items/barbell/thumbnail.webp',
930
- src: '/items/barbell/model.glb',
931
- scale: [1, 1, 1],
932
- offset: [0, 0, 0],
2150
+ id: 'kitchen-utensils',
2151
+ category: 'kitchen',
2152
+ name: 'Kitchen Utensils',
2153
+ tags: [
2154
+ 'utensils',
2155
+ 'tools',
2156
+ 'kitchenware',
2157
+ 'cooking',
2158
+ 'prep',
2159
+ 'steel',
2160
+ 'silicone',
2161
+ 'wood',
2162
+ 'modern',
2163
+ 'gadgets',
2164
+ 'accessories',
2165
+ 'silverware',
2166
+ 'chef',
2167
+ 'serving',
2168
+ 'baking',
2169
+ ],
2170
+ thumbnail:
2171
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-utensils/thumbnail.png',
2172
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-utensils/model.glb',
2173
+ floorPlanUrl:
2174
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-utensils/floor-plan.png',
2175
+ dimensions: [0.23, 0.49, 0.21],
2176
+ offset: [0.0184, 0, 0.0165],
933
2177
  rotation: [0, 0, 0],
934
- dimensions: [0.5, 0.4, 2],
2178
+ scale: [1, 1, 1],
935
2179
  },
936
-
937
- {
938
- id: 'toy',
939
- category: 'furniture',
940
- tags: ['floor', 'kids', 'decor'],
941
- name: 'Toy',
942
- thumbnail: '/items/toy/thumbnail.webp',
943
- src: '/items/toy/model.glb',
944
- scale: [1, 1, 1],
945
- offset: [0, 0, 0],
946
- rotation: [0, 0, 0],
947
- dimensions: [0.5, 0.5, 0.5],
948
- },
949
-
950
2180
  {
951
- id: 'car-toy',
952
- category: 'furniture',
953
- tags: ['floor', 'kids', 'decor'],
954
- name: 'Car Toy',
955
- thumbnail: '/items/car-toy/thumbnail.webp',
956
- src: '/items/car-toy/model.glb',
957
- scale: [1, 1, 1],
958
- offset: [0, 0, 0],
959
- rotation: [0, 0, 0],
960
- dimensions: [0.5, 0.4, 1],
2181
+ id: 'kitchen-counter',
2182
+ category: 'kitchen',
2183
+ name: 'Kitchen Counter',
2184
+ tags: [
2185
+ 'counter',
2186
+ 'countertop',
2187
+ 'island',
2188
+ 'surface',
2189
+ 'workspace',
2190
+ 'stone',
2191
+ 'granite',
2192
+ 'marble',
2193
+ 'modern',
2194
+ 'kitchen',
2195
+ 'cooking',
2196
+ 'prep',
2197
+ 'sleek',
2198
+ 'polished',
2199
+ ],
2200
+ thumbnail:
2201
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-counter/thumbnail.png',
2202
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-counter/model.glb',
2203
+ floorPlanUrl:
2204
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-counter/floor-plan.png',
2205
+ dimensions: [1.96, 0.73, 0.63],
2206
+ offset: [0.0012, 0, -0.0004],
2207
+ rotation: [0, 0, 0],
2208
+ scale: [1, 1, 1],
2209
+ surface: { height: 0.73 },
961
2210
  },
962
-
963
2211
  {
964
- id: 'easel',
965
- category: 'furniture',
966
- tags: ['floor', 'decor'],
967
- name: 'Easel',
968
- thumbnail: '/items/easel/thumbnail.webp',
969
- src: '/items/easel/model.glb',
970
- scale: [1, 1, 1],
971
- offset: [0, 0, 0],
2212
+ id: 'hood',
2213
+ category: 'kitchen',
2214
+ name: 'Hood',
2215
+ tags: [
2216
+ 'hood',
2217
+ 'vent',
2218
+ 'extractor',
2219
+ 'ventilation',
2220
+ 'kitchen',
2221
+ 'cooking',
2222
+ 'appliance',
2223
+ 'metal',
2224
+ 'steel',
2225
+ 'stainless',
2226
+ 'modern',
2227
+ 'sleek',
2228
+ 'industrial',
2229
+ 'minimalist',
2230
+ ],
2231
+ thumbnail:
2232
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/hood/thumbnail.png',
2233
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/hood/model.glb',
2234
+ floorPlanUrl:
2235
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/hood/floor-plan.png',
2236
+ dimensions: [1.21, 0.52, 0.51],
2237
+ offset: [0, 0.2718, 0],
972
2238
  rotation: [0, 0, 0],
973
- dimensions: [1.5, 2.3, 1],
974
- },
975
-
976
- {
977
- id: 'pool-table',
978
- category: 'furniture',
979
- tags: ['floor', 'leisure'],
980
- name: 'Pool table',
981
- thumbnail: '/items/pool-table/thumbnail.webp',
982
- src: '/items/pool-table/model.glb',
983
2239
  scale: [1, 1, 1],
984
- offset: [0, 0, 0],
985
- rotation: [0, 0, 0],
986
- dimensions: [2.5, 1, 4],
2240
+ attachTo: 'wall-side',
987
2241
  },
988
-
989
2242
  {
990
- id: 'guitar',
991
- category: 'furniture',
992
- tags: ['floor', 'decor'],
993
- name: 'Guitar',
994
- thumbnail: '/items/guitar/thumbnail.webp',
995
- src: '/items/guitar/model.glb',
996
- scale: [1, 1, 1],
997
- offset: [0, 0.32, 0],
998
- rotation: [0, 0, 0],
999
- dimensions: [0.5, 1.2, 0.5],
2243
+ id: 'wooden-kitchen-bar-moa2hhh4',
2244
+ category: 'kitchen',
2245
+ name: 'Kitchen Bar',
2246
+ tags: [
2247
+ 'bar',
2248
+ 'counter',
2249
+ 'island',
2250
+ 'breakfast',
2251
+ 'modern',
2252
+ 'contemporary',
2253
+ 'wood',
2254
+ 'stone',
2255
+ 'quartz',
2256
+ 'seating',
2257
+ 'dining',
2258
+ 'prep',
2259
+ 'entertaining',
2260
+ ],
2261
+ thumbnail:
2262
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/wooden-kitchen-bar-moa2hhh4/thumbnail.png',
2263
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/wooden-kitchen-bar-moa2hhh4/models/item_model_c6iR1M2eE2I8k5M3.glb',
2264
+ floorPlanUrl:
2265
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/wooden-kitchen-bar-moa2hhh4/floor-plan.png',
2266
+ dimensions: [2.5, 1.06, 0.96],
2267
+ offset: [0.0003, 0.5322, -0.0024],
2268
+ rotation: [0, 0, 0],
2269
+ scale: [2.49, 2.49, 2.49],
2270
+ surface: { height: 1.06 },
1000
2271
  },
1001
-
1002
2272
  {
1003
- id: 'piano',
1004
- category: 'furniture',
1005
- tags: ['floor', 'decor'],
1006
- name: 'Piano',
1007
- thumbnail: '/items/piano/thumbnail.webp',
1008
- src: '/items/piano/model.glb',
1009
- scale: [1, 1, 1],
1010
- offset: [0, 0, 0],
1011
- rotation: [0, 0, 0],
1012
- dimensions: [2, 1.5, 1],
2273
+ id: 'kitchen-cabinet',
2274
+ category: 'kitchen',
2275
+ name: 'Kitchen Cabinet',
2276
+ tags: [
2277
+ 'cabinet',
2278
+ 'cupboard',
2279
+ 'storage',
2280
+ 'kitchen',
2281
+ 'shaker',
2282
+ 'pantry',
2283
+ 'wood',
2284
+ 'timber',
2285
+ 'modern',
2286
+ 'contemporary',
2287
+ 'minimalist',
2288
+ 'organization',
2289
+ ],
2290
+ thumbnail:
2291
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-cabinet/thumbnail.png',
2292
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-cabinet/model.glb',
2293
+ floorPlanUrl:
2294
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-cabinet/floor-plan.png',
2295
+ dimensions: [1.65, 1.09, 0.77],
2296
+ offset: [0, 0.0004, 0],
2297
+ rotation: [0, 0, 0],
2298
+ scale: [1, 1, 1],
2299
+ surface: { height: 1.09 },
1013
2300
  },
1014
-
1015
2301
  {
1016
- id: 'round-carpet',
1017
- category: 'furniture',
1018
- tags: ['floor', 'decor'],
1019
- name: 'Round Carpet',
1020
- thumbnail: '/items/round-carpet/thumbnail.webp',
1021
- src: '/items/round-carpet/model.glb',
1022
- scale: [1, 1, 1],
2302
+ id: 'kitchen',
2303
+ category: 'kitchen',
2304
+ name: 'Kitchen',
2305
+ tags: [
2306
+ 'kitchen',
2307
+ 'cabinetry',
2308
+ 'cabinet',
2309
+ 'island',
2310
+ 'cooking',
2311
+ 'storage',
2312
+ 'modern',
2313
+ 'contemporary',
2314
+ 'minimalist',
2315
+ 'wood',
2316
+ 'marble',
2317
+ 'culinary',
2318
+ 'pantry',
2319
+ ],
2320
+ thumbnail:
2321
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen/thumbnail.png',
2322
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen/model.glb',
2323
+ floorPlanUrl:
2324
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen/floor-plan.png',
2325
+ dimensions: [2.38, 1.03, 0.84],
1023
2326
  offset: [0, 0, 0],
1024
2327
  rotation: [0, 0, 0],
1025
- dimensions: [2.5, 0.1, 2.5],
1026
- },
1027
-
1028
- {
1029
- id: 'rectangular-carpet',
1030
- category: 'furniture',
1031
- tags: ['floor', 'decor'],
1032
- name: 'Rectangular Carpet',
1033
- thumbnail: '/items/rectangular-carpet/thumbnail.webp',
1034
- src: '/items/rectangular-carpet/model.glb',
1035
2328
  scale: [1, 1, 1],
1036
- offset: [0, 0, 0],
1037
- rotation: [0, 0, 0],
1038
- dimensions: [3, 0.1, 2],
2329
+ surface: { height: 0.797 },
1039
2330
  },
1040
-
1041
2331
  {
1042
- id: 'cactus',
1043
- category: 'furniture',
1044
- tags: ['floor', 'decor', 'vegetation'],
1045
- name: 'Cactus',
1046
- thumbnail: '/items/cactus/thumbnail.webp',
1047
- src: '/items/cactus/model.glb',
1048
- scale: [1, 1, 1],
2332
+ id: 'frying-pan',
2333
+ category: 'kitchen',
2334
+ name: 'Frying Pan',
2335
+ tags: [
2336
+ 'frying',
2337
+ 'pan',
2338
+ 'skillet',
2339
+ 'cookware',
2340
+ 'kitchen',
2341
+ 'cooking',
2342
+ 'metal',
2343
+ 'steel',
2344
+ 'nonstick',
2345
+ 'culinary',
2346
+ 'modern',
2347
+ 'chef',
2348
+ 'stove',
2349
+ 'utensil',
2350
+ ],
2351
+ thumbnail:
2352
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/frying-pan/thumbnail.png',
2353
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/frying-pan/model.glb',
2354
+ floorPlanUrl:
2355
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/frying-pan/floor-plan.png',
2356
+ dimensions: [0.36, 0.09, 0.64],
1049
2357
  offset: [0, 0, 0],
1050
2358
  rotation: [0, 0, 0],
1051
- dimensions: [0.5, 0.4, 0.5],
1052
- },
1053
-
1054
- {
1055
- id: 'small-indoor-plant',
1056
- category: 'furniture',
1057
- tags: ['countertop', 'decor', 'vegetation'],
1058
- name: 'Small Plant',
1059
- thumbnail: '/items/small-indoor-plant/thumbnail.webp',
1060
- src: '/items/small-indoor-plant/model.glb',
1061
- scale: [1, 1, 1],
1062
- offset: [-0.01, 0, 0.01],
1063
- rotation: [0, 0, 0],
1064
- dimensions: [0.5, 0.7, 0.5],
1065
- },
1066
-
1067
- {
1068
- id: 'indoor-plant',
1069
- category: 'furniture',
1070
- tags: ['floor', 'decor', 'vegetation'],
1071
- name: 'Indoor Plant',
1072
- thumbnail: '/items/indoor-plant/thumbnail.webp',
1073
- src: '/items/indoor-plant/model.glb',
1074
2359
  scale: [1, 1, 1],
1075
- offset: [-0.05, 0, 0.07],
1076
- rotation: [0, 0, 0],
1077
- dimensions: [1, 1.7, 1],
1078
2360
  },
1079
-
1080
2361
  {
1081
- id: 'ironing-board',
1082
- category: 'furniture',
1083
- tags: ['floor'],
1084
- name: 'Ironing Board',
1085
- thumbnail: '/items/ironing-board/thumbnail.webp',
1086
- src: '/items/ironing-board/model.glb',
1087
- scale: [1, 1, 1],
2362
+ id: 'fruits',
2363
+ category: 'kitchen',
2364
+ name: 'Fruits',
2365
+ tags: [
2366
+ 'fruit',
2367
+ 'produce',
2368
+ 'food',
2369
+ 'kitchen',
2370
+ 'dining',
2371
+ 'centerpiece',
2372
+ 'tabletop',
2373
+ 'vibrant',
2374
+ 'fresh',
2375
+ 'organic',
2376
+ 'natural',
2377
+ 'accessory',
2378
+ 'decor',
2379
+ 'colorful',
2380
+ ],
2381
+ thumbnail:
2382
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fruits/thumbnail.png',
2383
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fruits/model.glb',
2384
+ floorPlanUrl:
2385
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fruits/floor-plan.png',
2386
+ dimensions: [0.39, 0.27, 0.39],
1088
2387
  offset: [0, 0, 0],
1089
2388
  rotation: [0, 0, 0],
1090
- dimensions: [1.5, 1, 1],
1091
- },
1092
-
1093
- {
1094
- id: 'coat-rack',
1095
- category: 'furniture',
1096
- tags: ['floor', 'storage'],
1097
- name: 'Coat Rack',
1098
- thumbnail: '/items/coat-rack/thumbnail.webp',
1099
- src: '/items/coat-rack/model.glb',
1100
2389
  scale: [1, 1, 1],
1101
- offset: [0, 0, 0],
1102
- rotation: [0, 0, 0],
1103
- dimensions: [0.5, 1.8, 0.5],
1104
2390
  },
1105
-
1106
2391
  {
1107
- id: 'trash-bin',
1108
- category: 'furniture',
1109
- tags: ['floor'],
1110
- name: 'Trash Bin',
1111
- thumbnail: '/items/trash-bin/thumbnail.webp',
1112
- src: '/items/trash-bin/model.glb',
1113
- scale: [1, 1, 1],
1114
- offset: [0, 0, 0],
2392
+ id: 'fridge',
2393
+ category: 'kitchen',
2394
+ name: 'Fridge',
2395
+ tags: [
2396
+ 'fridge',
2397
+ 'refrigerator',
2398
+ 'freezer',
2399
+ 'appliance',
2400
+ 'kitchen',
2401
+ 'storage',
2402
+ 'cooling',
2403
+ 'metal',
2404
+ 'steel',
2405
+ 'modern',
2406
+ 'industrial',
2407
+ 'minimalist',
2408
+ 'silver',
2409
+ 'sleek',
2410
+ ],
2411
+ thumbnail:
2412
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fridge/thumbnail.png',
2413
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fridge/model.glb',
2414
+ floorPlanUrl:
2415
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fridge/floor-plan.png',
2416
+ dimensions: [0.7, 1.92, 0.72],
2417
+ offset: [0, 0, -0.0507],
1115
2418
  rotation: [0, 0, 0],
1116
- dimensions: [0.5, 0.6, 0.5],
1117
- },
1118
-
1119
- {
1120
- id: 'round-mirror',
1121
- category: 'furniture',
1122
- tags: ['wall', 'decor'],
1123
- name: 'Rounded Mirror',
1124
- thumbnail: '/items/round-mirror/thumbnail.webp',
1125
- src: '/items/round-mirror/model.glb',
1126
2419
  scale: [1, 1, 1],
1127
- offset: [0, 0.32, 0],
1128
- rotation: [0, 0, 0],
1129
- dimensions: [1, 1, 0.1],
1130
- attachTo: 'wall-side',
1131
2420
  },
1132
-
1133
2421
  {
1134
- id: 'picture',
1135
- category: 'furniture',
1136
- tags: ['wall', 'decor'],
1137
- name: 'Picture',
1138
- thumbnail: '/items/picture/thumbnail.webp',
1139
- src: '/items/picture/model.glb',
1140
- scale: [1, 1, 1],
1141
- offset: [0.02, 0.45, 0.01],
2422
+ id: 'kitchen-shelf',
2423
+ category: 'kitchen',
2424
+ name: 'Kitchen Shelf',
2425
+ tags: [
2426
+ 'shelf',
2427
+ 'shelving',
2428
+ 'rack',
2429
+ 'ledge',
2430
+ 'storage',
2431
+ 'organizer',
2432
+ 'kitchen',
2433
+ 'pantry',
2434
+ 'modern',
2435
+ 'minimalist',
2436
+ 'industrial',
2437
+ 'wood',
2438
+ 'metal',
2439
+ 'utility',
2440
+ ],
2441
+ thumbnail:
2442
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-shelf/thumbnail.png',
2443
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-shelf/model.glb',
2444
+ floorPlanUrl:
2445
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/kitchen-shelf/floor-plan.png',
2446
+ dimensions: [2.21, 0.89, 0.52],
2447
+ offset: [-0.0009, 0.4478, 0],
1142
2448
  rotation: [0, 0, 0],
1143
- dimensions: [2, 1, 0.2],
2449
+ scale: [1, 1, 1],
1144
2450
  attachTo: 'wall-side',
1145
2451
  },
1146
-
1147
2452
  {
1148
- id: 'books',
1149
- category: 'furniture',
2453
+ id: 'wine-bottle',
2454
+ category: 'kitchen',
2455
+ name: 'Wine Bottle',
1150
2456
  tags: ['countertop', 'decor'],
1151
- name: 'Books',
1152
- thumbnail: '/items/books/thumbnail.webp',
1153
- src: '/items/books/model.glb',
1154
- scale: [1, 1, 1],
1155
- offset: [-0.08, 0, 0.02],
2457
+ thumbnail:
2458
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/wine-bottle/thumbnail.png',
2459
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/wine-bottle/model.glb',
2460
+ floorPlanUrl:
2461
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/wine-bottle/floor-plan.png',
2462
+ dimensions: [0.38, 0.35, 0.17],
2463
+ offset: [-0.0461, 0, 0.0135],
1156
2464
  rotation: [0, 0, 0],
1157
- dimensions: [0.5, 0.3, 0.5],
1158
- },
1159
-
1160
- {
1161
- id: 'column',
1162
- category: 'furniture',
1163
- tags: ['floor', 'structure'],
1164
- name: 'Column',
1165
- thumbnail: '/items/column/thumbnail.webp',
1166
- src: '/items/column/model.glb',
1167
2465
  scale: [1, 1, 1],
1168
- offset: [0, 1.26, 0],
1169
- rotation: [0, 0, 0],
1170
- dimensions: [0.5, 2.6, 0.5],
1171
2466
  },
1172
-
1173
2467
  {
1174
- id: 'stairs',
1175
- category: 'furniture',
1176
- tags: ['floor', 'structure'],
1177
- name: 'Stairs',
1178
- thumbnail: '/items/stairs/thumbnail.webp',
1179
- src: '/items/stairs/model.glb',
1180
- scale: [0.61, 0.61, 0.61],
1181
- offset: [0, 0.03, 1.8],
2468
+ id: 'stove',
2469
+ category: 'kitchen',
2470
+ name: 'Stove',
2471
+ tags: ['floor', 'large'],
2472
+ thumbnail:
2473
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stove/thumbnail.png',
2474
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stove/model.glb',
2475
+ floorPlanUrl:
2476
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/stove/floor-plan.png',
2477
+ dimensions: [0.92, 0.85, 0.76],
2478
+ offset: [0.0043, 0, -0.0505],
1182
2479
  rotation: [0, 0, 0],
1183
- dimensions: [1.5, 2.5, 3.5],
2480
+ scale: [1, 1, 1],
1184
2481
  },
1185
-
1186
- // {
1187
- // id: "suspended-fireplace",
1188
- // category: "furniture",
1189
- // tags: ["ceiling", "decor"],
1190
- // name: "Suspended Fireplace",
1191
- // thumbnail: "/items/suspended-fireplace/thumbnail.webp",
1192
- // src: "/items/suspended-fireplace/model.glb",
1193
- // scale: [1, 1, 1],
1194
- // offset: [0, 0.45, 0],
1195
- // rotation: [0, 0, 0],
1196
- // dimensions: [0.5, 0.5, 0.5],
1197
- // attachTo: "ceiling",
1198
- // },
1199
-
1200
2482
  {
1201
- id: 'tv-stand',
1202
- category: 'furniture',
1203
- tags: ['floor', 'storage'],
1204
- name: 'TV Stand',
1205
- thumbnail: '/items/tv-stand/thumbnail.webp',
1206
- src: '/items/tv-stand/model.glb',
1207
- scale: [1, 1, 1],
1208
- offset: [0, 0.21, 0],
2483
+ id: 'ball',
2484
+ category: 'outdoor',
2485
+ name: 'Ball',
2486
+ tags: [
2487
+ 'ball',
2488
+ 'sphere',
2489
+ 'orb',
2490
+ 'globe',
2491
+ 'round',
2492
+ 'modern',
2493
+ 'minimalist',
2494
+ 'decor',
2495
+ 'garden',
2496
+ 'patio',
2497
+ 'sculpture',
2498
+ 'ornament',
2499
+ 'accent',
2500
+ 'circular',
2501
+ 'contemporary',
2502
+ ],
2503
+ thumbnail:
2504
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ball/thumbnail.png',
2505
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ball/model.glb',
2506
+ floorPlanUrl:
2507
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/ball/floor-plan.png',
2508
+ dimensions: [0.24, 0.24, 0.24],
2509
+ offset: [-0.0001, 0.1194, -0.0001],
1209
2510
  rotation: [0, 0, 0],
1210
- dimensions: [2, 0.4, 0.5],
1211
- surface: {
1212
- height: 0.36,
1213
- },
2511
+ scale: [1, 1, 1],
1214
2512
  },
1215
-
1216
2513
  {
1217
- id: 'shelf',
1218
- category: 'furniture',
1219
- tags: ['wall', 'storage'],
1220
- name: 'Shelf',
1221
- thumbnail: '/items/shelf/thumbnail.webp',
1222
- src: '/items/shelf/model.glb',
1223
- scale: [1, 1, 1],
1224
- offset: [0, 0.1, 0.01],
2514
+ id: 'bush',
2515
+ category: 'outdoor',
2516
+ name: 'Bush',
2517
+ tags: [
2518
+ 'bush',
2519
+ 'shrub',
2520
+ 'plant',
2521
+ 'greenery',
2522
+ 'foliage',
2523
+ 'hedge',
2524
+ 'natural',
2525
+ 'organic',
2526
+ 'lush',
2527
+ 'landscaping',
2528
+ 'garden',
2529
+ 'yard',
2530
+ 'botanical',
2531
+ 'outdoor',
2532
+ 'decorative',
2533
+ ],
2534
+ thumbnail:
2535
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bush/thumbnail.png',
2536
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bush/model.glb',
2537
+ floorPlanUrl:
2538
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/bush/floor-plan.png',
2539
+ dimensions: [3, 1.04, 1.01],
2540
+ offset: [-0.1463, 0.0094, -0.113],
1225
2541
  rotation: [0, 0, 0],
1226
- dimensions: [1, 0.5, 0.7],
1227
- attachTo: 'wall-side',
1228
- surface: {
1229
- height: 0.12,
1230
- },
2542
+ scale: [0.96, 0.96, 0.96],
1231
2543
  },
1232
-
1233
2544
  {
1234
- id: 'bookshelf',
1235
- category: 'furniture',
1236
- tags: ['floor', 'storage'],
1237
- name: 'Bookshelf',
1238
- thumbnail: '/items/bookshelf/thumbnail.webp',
1239
- src: '/items/bookshelf/model.glb',
1240
- scale: [1, 1, 1],
2545
+ id: 'basket-hoop',
2546
+ category: 'outdoor',
2547
+ name: 'Basket Hoop',
2548
+ tags: [
2549
+ 'hoop',
2550
+ 'basketball',
2551
+ 'rim',
2552
+ 'net',
2553
+ 'goal',
2554
+ 'sporty',
2555
+ 'recreation',
2556
+ 'outdoor',
2557
+ 'metal',
2558
+ 'steel',
2559
+ 'athletic',
2560
+ 'game',
2561
+ 'play',
2562
+ 'leisure',
2563
+ 'activity',
2564
+ ],
2565
+ thumbnail:
2566
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/basket-hoop/thumbnail.png',
2567
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/basket-hoop/model.glb',
2568
+ floorPlanUrl:
2569
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/basket-hoop/floor-plan.png',
2570
+ dimensions: [0.58, 1.78, 0.56],
1241
2571
  offset: [0, 0, 0],
1242
2572
  rotation: [0, 0, 0],
1243
- dimensions: [1, 2, 0.5],
1244
- },
1245
-
1246
- {
1247
- id: 'ceiling-lamp',
1248
- category: 'furniture',
1249
- tags: ['ceiling', 'lighting'],
1250
- name: 'Ceiling Lamp',
1251
- thumbnail: '/items/ceiling-lamp/thumbnail.webp',
1252
- src: '/items/ceiling-lamp/model.glb',
1253
2573
  scale: [1, 1, 1],
1254
- offset: [0, 0.98, 0],
1255
- rotation: [0, 0, 0],
1256
- dimensions: [1, 1, 1],
1257
- attachTo: 'ceiling',
1258
- interactive: {
1259
- controls: [
1260
- {
1261
- kind: 'toggle',
1262
- },
1263
- {
1264
- kind: 'slider',
1265
- label: 'Intensity',
1266
- min: 0,
1267
- max: 100,
1268
- unit: '%',
1269
- displayMode: 'dial',
1270
- default: 100,
1271
- },
1272
- ],
1273
- effects: [
1274
- {
1275
- kind: 'light',
1276
- intensityRange: [0, 2],
1277
- color: '#ffffff',
1278
- offset: [0, -0.5, 0],
1279
- },
1280
- ],
1281
- },
1282
2574
  },
1283
2575
  {
1284
- id: 'recessed-light',
1285
- category: 'furniture',
1286
- tags: ['ceiling', 'lighting'],
1287
- name: 'Recessed Light',
1288
- thumbnail: '/items/recessed-light/thumbnail.webp',
1289
- src: '/items/recessed-light/model.glb',
1290
- scale: [1, 1, 1],
1291
- offset: [0, 0.094, 0],
2576
+ id: 'parking-spot',
2577
+ category: 'outdoor',
2578
+ name: 'Parking Spot',
2579
+ tags: [
2580
+ 'parking',
2581
+ 'space',
2582
+ 'stall',
2583
+ 'driveway',
2584
+ 'pavement',
2585
+ 'asphalt',
2586
+ 'concrete',
2587
+ 'urban',
2588
+ 'industrial',
2589
+ 'utility',
2590
+ 'vehicle',
2591
+ 'outdoor',
2592
+ ],
2593
+ thumbnail:
2594
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/parking-spot/thumbnail.png',
2595
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/parking-spot/model.glb',
2596
+ floorPlanUrl:
2597
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/parking-spot/floor-plan.png',
2598
+ dimensions: [4.95, 0.12, 2.28],
2599
+ offset: [0, 0.0121, 0.015],
1292
2600
  rotation: [0, 0, 0],
1293
- dimensions: [0.5, 0.1, 0.5],
1294
- attachTo: 'ceiling',
1295
- interactive: {
1296
- controls: [
1297
- {
1298
- kind: 'toggle',
1299
- },
1300
- {
1301
- kind: 'slider',
1302
- label: 'Intensity',
1303
- min: 0,
1304
- max: 100,
1305
- unit: '%',
1306
- displayMode: 'dial',
1307
- default: 100,
1308
- },
1309
- ],
1310
- effects: [
1311
- {
1312
- kind: 'light',
1313
- intensityRange: [0, 2],
1314
- color: '#ffffff',
1315
- offset: [0, -0.1, 0],
1316
- },
1317
- ],
1318
- },
2601
+ scale: [0.9, 1, 0.78],
2602
+ surface: { height: 0.015 },
1319
2603
  },
1320
-
1321
2604
  {
1322
- id: 'floor-lamp',
1323
- category: 'furniture',
1324
- tags: ['floor', 'lighting'],
1325
- name: 'Floor Lamp',
1326
- thumbnail: '/items/floor-lamp/thumbnail.webp',
1327
- src: '/items/floor-lamp/model.glb',
1328
- scale: [1, 1, 1],
1329
- offset: [0.04, 0, 0.02],
2605
+ id: 'palm',
2606
+ category: 'outdoor',
2607
+ name: 'Palm',
2608
+ tags: [
2609
+ 'palm',
2610
+ 'tree',
2611
+ 'plant',
2612
+ 'tropical',
2613
+ 'exotic',
2614
+ 'foliage',
2615
+ 'greenery',
2616
+ 'botanical',
2617
+ 'garden',
2618
+ 'patio',
2619
+ 'outdoor',
2620
+ 'lush',
2621
+ 'organic',
2622
+ 'nature',
2623
+ ],
2624
+ thumbnail:
2625
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/palm/thumbnail.png',
2626
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/palm/model.glb',
2627
+ floorPlanUrl:
2628
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/palm/floor-plan.png',
2629
+ dimensions: [0.525, 4.5, 0.496],
2630
+ offset: [0, 0.08, 0],
1330
2631
  rotation: [0, 0, 0],
1331
- dimensions: [1, 1.9, 1],
1332
- interactive: {
1333
- controls: [
1334
- {
1335
- kind: 'toggle',
1336
- },
1337
- {
1338
- kind: 'slider',
1339
- label: 'Intensity',
1340
- min: 0,
1341
- max: 100,
1342
- unit: '%',
1343
- displayMode: 'dial',
1344
- default: 100,
1345
- },
1346
- ],
1347
- effects: [
1348
- {
1349
- kind: 'light',
1350
- intensityRange: [0, 2],
1351
- color: '#ffffff',
1352
- offset: [0, 1.4, 0],
1353
- },
1354
- ],
1355
- },
2632
+ scale: [0.37, 0.37, 0.37],
1356
2633
  },
1357
-
1358
2634
  {
1359
- id: 'table-lamp',
1360
- category: 'furniture',
1361
- tags: ['countertop', 'lighting'],
1362
- name: 'Table Lamp',
1363
- thumbnail: '/items/table-lamp/thumbnail.webp',
1364
- src: '/items/table-lamp/model.glb',
1365
- scale: [1, 1, 1],
1366
- offset: [0, 0, 0],
2635
+ id: 'sunbed',
2636
+ category: 'outdoor',
2637
+ name: 'Sunbed',
2638
+ tags: ['leisure', 'seating', 'floor'],
2639
+ thumbnail:
2640
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sunbed/thumbnail.png',
2641
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sunbed/model.glb',
2642
+ floorPlanUrl:
2643
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/sunbed/floor-plan.png',
2644
+ dimensions: [0.86, 1.13, 1.01],
2645
+ offset: [0, 0.0516, 0.0137],
1367
2646
  rotation: [0, 0, 0],
1368
- dimensions: [0.5, 0.8, 1],
1369
- },
1370
-
1371
- {
1372
- id: 'closet',
1373
- category: 'furniture',
1374
- tags: ['floor', 'storage', 'bedroom'],
1375
- name: 'Closet',
1376
- thumbnail: '/items/closet/thumbnail.webp',
1377
- src: '/items/closet/model.glb',
1378
2647
  scale: [1, 1, 1],
1379
- offset: [0, 0, -0.01],
1380
- rotation: [0, 0, 0],
1381
- dimensions: [2, 2.5, 1],
1382
2648
  },
1383
-
1384
2649
  {
1385
- id: 'dresser',
1386
- category: 'furniture',
1387
- tags: ['floor', 'storage', 'bedroom'],
1388
- name: 'Dresser',
1389
- thumbnail: '/items/dresser/thumbnail.webp',
1390
- src: '/items/dresser/model.glb',
1391
- scale: [1, 1, 1],
1392
- offset: [0, 0, 0],
2650
+ id: 'fir-tree',
2651
+ category: 'outdoor',
2652
+ name: 'Fir',
2653
+ tags: [
2654
+ 'fir',
2655
+ 'tree',
2656
+ 'plant',
2657
+ 'evergreen',
2658
+ 'conifer',
2659
+ 'foliage',
2660
+ 'greenery',
2661
+ 'natural',
2662
+ 'garden',
2663
+ 'outdoor',
2664
+ 'botanical',
2665
+ 'rustic',
2666
+ 'alpine',
2667
+ 'woodland',
2668
+ ],
2669
+ thumbnail:
2670
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fir-tree/thumbnail.png',
2671
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fir-tree/model.glb',
2672
+ floorPlanUrl:
2673
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/fir-tree/floor-plan.png',
2674
+ dimensions: [0.27, 3, 0.23],
2675
+ offset: [0.02, 0.05, -0.06],
1393
2676
  rotation: [0, 0, 0],
1394
- dimensions: [1.5, 0.8, 1],
1395
- surface: {
1396
- height: 0.8,
1397
- },
1398
- },
1399
-
1400
- {
1401
- id: 'bunkbed',
1402
- category: 'furniture',
1403
- tags: ['floor', 'bedroom'],
1404
- name: 'Bunkbed',
1405
- thumbnail: '/items/bunkbed/thumbnail.webp',
1406
- src: '/items/bunkbed/model.glb',
1407
2677
  scale: [1, 1, 1],
1408
- offset: [0, 0, -0.09],
1409
- rotation: [0, 0, 0],
1410
- dimensions: [2, 1.6, 1.5],
1411
2678
  },
1412
-
1413
2679
  {
1414
- id: 'double-bed',
1415
- category: 'furniture',
1416
- tags: ['floor', 'bedroom'],
1417
- name: 'Double Bed',
1418
- thumbnail: '/items/double-bed/thumbnail.webp',
1419
- src: '/items/double-bed/model.glb',
1420
- scale: [1, 1, 1],
1421
- offset: [0, 0, -0.03],
2680
+ id: 'tree',
2681
+ category: 'outdoor',
2682
+ name: 'Tree',
2683
+ tags: ['vegetation'],
2684
+ thumbnail:
2685
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tree/thumbnail.png',
2686
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tree/model.glb',
2687
+ floorPlanUrl:
2688
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tree/floor-plan.png',
2689
+ dimensions: [0.79, 5, 0.85],
2690
+ offset: [-0.02, 0.17, -0.04],
1422
2691
  rotation: [0, 0, 0],
1423
- dimensions: [2, 0.8, 2.5],
2692
+ scale: [0.65, 0.65, 0.65],
1424
2693
  },
1425
-
1426
2694
  {
1427
- id: 'single-bed',
1428
- category: 'furniture',
1429
- tags: ['floor', 'bedroom'],
1430
- name: 'Single Bed',
1431
- thumbnail: '/items/single-bed/thumbnail.webp',
1432
- src: '/items/single-bed/model.glb',
1433
- scale: [1, 1, 1],
2695
+ id: 'skate',
2696
+ category: 'outdoor',
2697
+ name: 'Skate',
2698
+ tags: ['leisure', 'kids', 'floor'],
2699
+ thumbnail:
2700
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/skate/thumbnail.png',
2701
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/skate/model.glb',
2702
+ floorPlanUrl:
2703
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/skate/floor-plan.png',
2704
+ dimensions: [0.86, 0.11, 0.2],
1434
2705
  offset: [0, 0, 0],
1435
2706
  rotation: [0, 0, 0],
1436
- dimensions: [1.5, 0.7, 2.5],
2707
+ scale: [1, 1, 1],
1437
2708
  },
1438
-
1439
2709
  {
1440
- id: 'sofa',
1441
- category: 'furniture',
1442
- tags: ['floor', 'seating'],
1443
- name: 'Sofa',
1444
- thumbnail: '/items/sofa/thumbnail.webp',
1445
- src: '/items/sofa/model.glb',
1446
- scale: [1, 1, 1],
1447
- offset: [0, 0, 0.04],
2710
+ id: '1967-chevrolet-camaro-moa24wsf',
2711
+ category: 'outdoor',
2712
+ name: '1967 Chevrolet Camaro',
2713
+ tags: ['car'],
2714
+ thumbnail:
2715
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/1967-chevrolet-camaro-moa24wsf/thumbnail.png',
2716
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/1967-chevrolet-camaro-moa24wsf/models/item_model_vUIp1N69V9RXLqoJ.glb',
2717
+ floorPlanUrl:
2718
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/1967-chevrolet-camaro-moa24wsf/floor-plan.png',
2719
+ dimensions: [4.09, 1.22, 1.89],
2720
+ offset: [-0.0018, 0.5987, 0.0205],
1448
2721
  rotation: [0, 0, 0],
1449
- dimensions: [2.5, 0.8, 1.5],
2722
+ scale: [4.09, 4.09, 4.09],
1450
2723
  },
1451
-
1452
2724
  {
1453
- id: 'lounge-chair',
1454
- category: 'furniture',
1455
- tags: ['floor', 'seating'],
1456
- name: 'Lounge Chair',
1457
- thumbnail: '/items/lounge-chair/thumbnail.webp',
1458
- src: '/items/lounge-chair/model.glb',
1459
- scale: [1, 1, 1],
1460
- offset: [0, 0, 0.09],
2725
+ id: 'outdoor-playhouse',
2726
+ category: 'outdoor',
2727
+ name: 'Outdoor Playhouse',
2728
+ tags: [
2729
+ 'playhouse',
2730
+ 'cottage',
2731
+ 'cabin',
2732
+ 'fort',
2733
+ 'wood',
2734
+ 'cedar',
2735
+ 'garden',
2736
+ 'backyard',
2737
+ 'kids',
2738
+ 'children',
2739
+ 'play',
2740
+ 'recreation',
2741
+ 'outdoor',
2742
+ 'rustic',
2743
+ 'timber',
2744
+ ],
2745
+ thumbnail:
2746
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/outdoor-playhouse/thumbnail.png',
2747
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/outdoor-playhouse/model.glb',
2748
+ floorPlanUrl:
2749
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/outdoor-playhouse/floor-plan.png',
2750
+ dimensions: [0.3, 0.47, 0.72],
2751
+ offset: [-0.0062, 0, -0.0268],
1461
2752
  rotation: [0, 0, 0],
1462
- dimensions: [1, 1.1, 1.5],
2753
+ scale: [1, 1, 1],
1463
2754
  },
1464
-
1465
2755
  {
1466
- id: 'stool',
1467
- category: 'furniture',
1468
- tags: ['floor', 'seating'],
1469
- name: 'Stool',
1470
- thumbnail: '/items/stool/thumbnail.webp',
1471
- src: '/items/stool/model.glb',
1472
- scale: [1, 1, 1],
2756
+ id: 'patio-umbrella',
2757
+ category: 'outdoor',
2758
+ name: 'Patio Umbrella',
2759
+ tags: [
2760
+ 'umbrella',
2761
+ 'parasol',
2762
+ 'shade',
2763
+ 'canopy',
2764
+ 'sunshade',
2765
+ 'outdoor',
2766
+ 'patio',
2767
+ 'garden',
2768
+ 'modern',
2769
+ 'polyester',
2770
+ 'fabric',
2771
+ 'aluminum',
2772
+ 'poolside',
2773
+ 'protection',
2774
+ 'summer',
2775
+ ],
2776
+ thumbnail:
2777
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/patio-umbrella/thumbnail.png',
2778
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/patio-umbrella/model.glb',
2779
+ floorPlanUrl:
2780
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/patio-umbrella/floor-plan.png',
2781
+ dimensions: [0.139, 3.603, 0.15],
1473
2782
  offset: [0, 0, 0],
1474
2783
  rotation: [0, 0, 0],
1475
- dimensions: [1, 1.2, 1],
2784
+ scale: [1, 1, 1],
1476
2785
  },
1477
-
1478
2786
  {
1479
- id: 'dining-chair',
1480
- category: 'furniture',
1481
- tags: ['floor', 'seating'],
1482
- name: 'Dining Chair',
1483
- thumbnail: '/items/dining-chair/thumbnail.webp',
1484
- src: '/items/dining-chair/model.glb',
1485
- scale: [1, 1, 1],
2787
+ id: 'pillar',
2788
+ category: 'outdoor',
2789
+ name: 'Pillar',
2790
+ tags: [
2791
+ 'pillar',
2792
+ 'column',
2793
+ 'pedestal',
2794
+ 'plinth',
2795
+ 'stone',
2796
+ 'concrete',
2797
+ 'classical',
2798
+ 'architectural',
2799
+ 'garden',
2800
+ 'ornament',
2801
+ 'decoration',
2802
+ 'support',
2803
+ ],
2804
+ thumbnail:
2805
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/pillar/thumbnail.png',
2806
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/pillar/model.glb',
2807
+ floorPlanUrl:
2808
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/pillar/floor-plan.png',
2809
+ dimensions: [0.34, 1.26, 0.3],
1486
2810
  offset: [0, 0, 0],
1487
2811
  rotation: [0, 0, 0],
1488
- dimensions: [0.5, 1, 0.5],
1489
- },
1490
-
1491
- {
1492
- id: 'office-chair',
1493
- category: 'furniture',
1494
- tags: ['floor', 'seating'],
1495
- name: 'Office Chair',
1496
- thumbnail: '/items/office-chair/thumbnail.webp',
1497
- src: '/items/office-chair/model.glb',
1498
2812
  scale: [1, 1, 1],
1499
- offset: [0.01, 0, 0.03],
1500
- rotation: [0, 0, 0],
1501
- dimensions: [1, 1.2, 1],
1502
2813
  },
1503
-
1504
2814
  {
1505
- id: 'livingroom-chair',
1506
- category: 'furniture',
1507
- tags: ['floor', 'seating'],
1508
- name: 'Livingroom Chair',
1509
- thumbnail: '/items/livingroom-chair/thumbnail.webp',
1510
- src: '/items/livingroom-chair/model.glb',
1511
- scale: [1, 1, 1],
1512
- offset: [0.01, 0, 0],
2815
+ id: 'scooter',
2816
+ category: 'outdoor',
2817
+ name: 'Scooter',
2818
+ tags: [
2819
+ 'scooter',
2820
+ 'kickscooter',
2821
+ 'transport',
2822
+ 'mobility',
2823
+ 'outdoor',
2824
+ 'wheels',
2825
+ 'metal',
2826
+ 'aluminum',
2827
+ 'modern',
2828
+ 'sleek',
2829
+ 'urban',
2830
+ 'active',
2831
+ 'travel',
2832
+ 'ride',
2833
+ 'commute',
2834
+ ],
2835
+ thumbnail:
2836
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/scooter/thumbnail.png',
2837
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/scooter/model.glb',
2838
+ floorPlanUrl:
2839
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/scooter/floor-plan.png',
2840
+ dimensions: [0.85, 0.85, 0.45],
2841
+ offset: [0.1127, 0.0017, 0.1744],
1513
2842
  rotation: [0, 0, 0],
1514
- dimensions: [1.5, 0.8, 1.5],
1515
- },
1516
-
1517
- {
1518
- id: 'bedside-table',
1519
- category: 'furniture',
1520
- tags: ['floor', 'bedroom'],
1521
- name: 'Bedside Table',
1522
- thumbnail: '/items/bedside-table/thumbnail.webp',
1523
- src: '/items/bedside-table/model.glb',
1524
2843
  scale: [1, 1, 1],
1525
- offset: [0, 0, -0.01],
1526
- rotation: [0, 0, 0],
1527
- dimensions: [0.5, 0.5, 0.5],
1528
- surface: {
1529
- height: 0.5,
1530
- },
1531
2844
  },
1532
-
1533
2845
  {
1534
- id: 'coffee-table',
1535
- category: 'furniture',
1536
- tags: ['floor', 'table'],
1537
- name: 'Coffee Table',
1538
- thumbnail: '/items/coffee-table/thumbnail.webp',
1539
- src: '/items/coffee-table/model.glb',
2846
+ id: 'tesla',
2847
+ category: 'outdoor',
2848
+ name: 'Tesla Model Y',
2849
+ tags: [
2850
+ 'tesla',
2851
+ 'car',
2852
+ 'vehicle',
2853
+ 'automobile',
2854
+ 'electric',
2855
+ 'modern',
2856
+ 'minimalist',
2857
+ 'sleek',
2858
+ 'metal',
2859
+ 'glass',
2860
+ 'luxury',
2861
+ 'transportation',
2862
+ 'commuting',
2863
+ ],
2864
+ thumbnail:
2865
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tesla/thumbnail.png',
2866
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tesla/model.glb',
2867
+ floorPlanUrl:
2868
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/system/tesla/floor-plan.png',
2869
+ dimensions: [1.98, 1.62, 4.76],
2870
+ offset: [0.0039, -0.0102, -0.0148],
2871
+ rotation: [0, 0, 0],
2872
+ scale: [1, 1, 1],
2873
+ },
2874
+ {
2875
+ id: 'dishwasher-movn72ls',
2876
+ category: 'appliance',
2877
+ name: 'Dishwasher',
2878
+ tags: ['dishwasher', 'appliance', 'kitchen', 'floor'],
2879
+ thumbnail:
2880
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/users/user_7hUFMrlrAX1vtIwT/dishwasher-movn72ls/thumbnail.png',
2881
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/users/user_7hUFMrlrAX1vtIwT/dishwasher-movn72ls/models/item_model_fFvQuIjpPISAraGN.glb',
2882
+ floorPlanUrl:
2883
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/users/user_7hUFMrlrAX1vtIwT/dishwasher-movn72ls/floor-plan.png',
2884
+ dimensions: [0.79, 1.01, 0.76],
2885
+ offset: [0.0026, 0.5004, 0.0011],
2886
+ rotation: [0, -0.0349, 0],
1540
2887
  scale: [1, 1, 1],
1541
- offset: [0, 0, 0],
1542
- rotation: [0, 0, 0],
1543
- dimensions: [2, 0.4, 1.5],
1544
- surface: {
1545
- height: 0.3,
1546
- },
1547
2888
  },
1548
-
1549
2889
  {
1550
- id: 'office-table',
2890
+ id: 'fireplace-movn1fnn',
1551
2891
  category: 'furniture',
1552
- tags: ['floor', 'table'],
1553
- name: 'Office Table',
1554
- thumbnail: '/items/office-table/thumbnail.webp',
1555
- src: '/items/office-table/model.glb',
1556
- scale: [1, 1, 1],
1557
- offset: [0, 0, 0],
2892
+ name: 'Fireplace',
2893
+ tags: ['fireplace', 'hearth', 'mantel', 'wall'],
2894
+ thumbnail:
2895
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/users/user_7hUFMrlrAX1vtIwT/fireplace-movn1fnn/thumbnail.png',
2896
+ src: 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/users/user_7hUFMrlrAX1vtIwT/fireplace-movn1fnn/models/item_model_vNBpPC3gCrIIqFUS.glb',
2897
+ floorPlanUrl:
2898
+ 'https://byrpxoiotywskoojsrzd.supabase.co/storage/v1/object/public/items/users/user_7hUFMrlrAX1vtIwT/fireplace-movn1fnn/floor-plan.png',
2899
+ dimensions: [1, 0.83, 0.18],
2900
+ offset: [-0.0001, 0.4116, -0.0015],
1558
2901
  rotation: [0, 0, 0],
1559
- dimensions: [2, 0.8, 1],
1560
- surface: {
1561
- height: 0.75,
1562
- },
1563
- },
1564
-
1565
- {
1566
- id: 'dining-table',
1567
- category: 'furniture',
1568
- tags: ['floor', 'table'],
1569
- name: 'Dining Table',
1570
- thumbnail: '/items/dining-table/thumbnail.webp',
1571
- src: '/items/dining-table/model.glb',
1572
2902
  scale: [1, 1, 1],
1573
- offset: [0, 0, -0.01],
1574
- rotation: [0, 0, 0],
1575
- dimensions: [2.5, 0.8, 1],
1576
- surface: {
1577
- height: 0.8,
1578
- },
1579
2903
  },
1580
2904
  ]
1581
2905