Conversation
|
Practical and super interesting. Curious, could this afford us something like crafting? |
|
@humbletim stated that node refs should be able to specify a bounding box for the object to fit within. Kinda like |
|
Yinch and Lyuma requested that nodes be able to load fallbacks for progressive loading. We need to handle recursion. Either by allowing it with a max depth or disallowing it entirely. So long as there's no actual cycles recursion should be allowed. Ex. nodes cannot reference themselves but a node can reference another object within it's own document. |
|
Cool, I like this a lot! I've implemented something similar for https://github.com/expenses/mateversum. Here's an example: https://github.com/expenses/mateversum/blob/master/web/sponza_with_mirror.json Some things that would be important to me:
|
|
Noice, I made a quick example of a Sponza + mirror in Webaverse to compare with (https://github.com/madjin/sponza) {
"objects": [
{
"type": "application/light",
"content": {
"lightType": "ambient",
"args": [[255, 255, 255], 2]
}
},
{
"type": "application/light",
"content": {
"lightType": "directional",
"args": [[255, 255, 255], 2],
"position": [1, 2, 3]
}
},
{
"position": [
0,
0,
0
],
"start_url": "https://madjin.github.io/sponza/glTF/Sponza.glb"
},
{
"position": [
0,
0,
-2
],
"start_url": "https://webaverse.github.io/mirror/"
}
]
}More about Webaverse here: https://github.com/webaverse |
|
here are a few links to existing "JSON scene dialects" found in the wild. (hoping we can compare/contrast some of these at a next meeting to help determine which use cases fall in or out of scope of OMI_ref)
|
|
Awesome list! Thanks @humbletim! Can people try to take a look over these by next meeting? We can also go over them then. |
|
This topic reminds me of A's presentation at a recent M3 demo day: M3 Mixer: A on Metaverse Clipboard
|
|
Great list of metadata examples! Will take a look, cheers! |
|
@robertlong mentioned discovering Khronos/gLXF (spec currently being drafted) example of {
"asset": {
"version": 2.0,
"experience": true
},
"assets": [
{
"name": "Soccer Player",
"uri": "soccer_player.gltf",
"scene": "player"
},
{
"name": "Ball",
"uri": "ball.gltf",
"nodes": [ "ball" ],
"transform": "none"
}
],
"nodes": [
{
"name": "Root Node",
"children": [ 1, 2 ]
},
{
"name": "Soccer Player Node",
"asset": 0,
"translation": [ 0, 0, 0 ]
},
{
"name": "Soccer Ball Node",
"asset": 1,
"translation": [ -10, 0, 35 ]
},
{
"name": "Ball Destination Node",
"translation": [ 51, 0, 80 ]
},
{
"name": "Ball Origin Node",
"translation": [ -10, 0, 35 ]
}
]
} |
|
another interesting example that supports referring to specific named nodes in an external resource. ...
"name": "Scene.json",
"objects": [
{
"data_ref": "mesh_Cube.json/Cube",
"dimensions": [
2.0,
... |
|
I'm no longer working on this spec and it needs another champion to continue. |



Rendered