From ebe8eb3cfba6c0dc2a339fe4578a55bea4c116bd Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Sun, 27 Sep 2026 12:41:12 +0200 Subject: [PATCH] wip --- .../assets/webui/apps/xrforge/xrforge.js | 1 + .../assets/webui/apps/xrforge/xrforge.json | 10 +++++++ src/janusweb/media/assets/webui/xrforge.json | 28 +++++++++++++++++++ src/page/about.html | 7 +++-- src/page/dir.lua | 2 +- src/page/janusxr.html | 2 +- src/plugin/janusxr.lua | 20 +++++++------ src/plugin/janusxr/layout/grid.lua | 1 + src/test/plugin_janusxr.lua | 19 ++++++++++++- src/util/build.sh | 7 ++++- 10 files changed, 81 insertions(+), 16 deletions(-) create mode 100644 src/janusweb/media/assets/webui/apps/xrforge/xrforge.js create mode 100644 src/janusweb/media/assets/webui/apps/xrforge/xrforge.json create mode 100644 src/janusweb/media/assets/webui/xrforge.json diff --git a/src/janusweb/media/assets/webui/apps/xrforge/xrforge.js b/src/janusweb/media/assets/webui/apps/xrforge/xrforge.js new file mode 100644 index 0000000..eac8849 --- /dev/null +++ b/src/janusweb/media/assets/webui/apps/xrforge/xrforge.js @@ -0,0 +1 @@ +//alert("xrforge") diff --git a/src/janusweb/media/assets/webui/apps/xrforge/xrforge.json b/src/janusweb/media/assets/webui/apps/xrforge/xrforge.json new file mode 100644 index 0000000..7ba8e85 --- /dev/null +++ b/src/janusweb/media/assets/webui/apps/xrforge/xrforge.json @@ -0,0 +1,10 @@ +{ + "templates": { + }, + "scripts": [ + "./xrforge.js" + ], + "css": [] +} + + diff --git a/src/janusweb/media/assets/webui/xrforge.json b/src/janusweb/media/assets/webui/xrforge.json new file mode 100644 index 0000000..51f049f --- /dev/null +++ b/src/janusweb/media/assets/webui/xrforge.json @@ -0,0 +1,28 @@ +{ + "apps": { + "navigation": "./apps/navigation/navigation.json", + "comms": "./apps/comms/comms.json", + "avatar": "./apps/avatar/avatar.json", + "settings": "./apps/settings/settings.json", + "inventory": "./apps/inventory/inventory.json", + "editor": "./apps/editor/editor.json?v=12", + "transporter": "./apps/transporter/transporter.json", + "locomotion": "./apps/locomotion/locomotion.json", + "virtualgamepad": "./apps/virtualgamepad/virtualgamepad.json", + "buttons": "./apps/buttons/buttons.json", + "xrmenu": "./apps/xrmenu/xrmenu.json?v=14", + "xrfragment": "./apps/xrfragment/xrfragment.json", + "xrforge": "./apps/xrforge/xrforge.json", + "vfs": "./apps/vfs/vfs.json" + }, + "includes": [ + ], + "templates": { + "janusweb.ui": "./default.html" + }, + "css": [ + "./themes/default.css" + ], + "scripts": [ + ] +} diff --git a/src/page/about.html b/src/page/about.html index 3816bfb..db0406a 100644 --- a/src/page/about.html +++ b/src/page/about.html @@ -61,8 +61,8 @@ div#xrecosystem{

Turn files into AR/VR đŸĨŊ experiences

+ A Virtual Worlds Mixer (VWM), powered by JanusXR & XR Fragments.
A static website generator for interconnected XR experiences.
- Generate and manage open virtual worlds, powered by JanusXR & XR Fragments.

@@ -119,8 +119,7 @@ div#xrecosystem{ How? Well it's backed by JanusXR- and XR Fragment- URLs.
The metaverse has shown: people like 3D but certain existing 2D ecosystems are king.
They're just more cost-efficient to use.
- Hence, XRForge incorporates the opensource JanusXR-client called JanusWeb, which promotes projecting these ecosystems as virtual hyperlinked worlds (via XR translators).
- XRForge can seed itself via local or remote + Hence, XRForge promotes projecting these ecosystems as virtual hyperlinked worlds, via JanusXR translators, tapping into various datastores
@@ -129,6 +128,8 @@ div#xrecosystem{
+ Icosa.gallery
+ Manyfold
Azure Blob
Azure Files
B2
diff --git a/src/page/dir.lua b/src/page/dir.lua index 3b34819..8259b6f 100644 --- a/src/page/dir.lua +++ b/src/page/dir.lua @@ -101,7 +101,7 @@ return { data.janusurl = (v.janusxr and v.janusxr.wrap) and app.opts.baseurl .. util.stripPath(v.url) -- if parent has redirect to item set, use parent url if not data.janusurl or v.parent.redirect == v.url then - data.janusurl = app.opts.baseurl .. util.stripPath(v.parent.redirect) + data.janusurl = app.opts.baseurl .. util.stripPath(v.parent.redirect or v.parent.url) end if v.janusxr and v.janusxr.wrap and v.janusxr.wrap.file then -- what to do here? no generated portals? diff --git a/src/page/janusxr.html b/src/page/janusxr.html index ad44aea..e866fa7 100644 --- a/src/page/janusxr.html +++ b/src/page/janusxr.html @@ -50,7 +50,7 @@ end} function initRoom(r) if r.janusxr and r.janusxr.room then - pos = '0 0 1' -- todo make startup location configurable + pos = '0 0 2' -- todo make startup location configurable room = r.janusxr.room end end diff --git a/src/plugin/janusxr.lua b/src/plugin/janusxr.lua index 28ddd57..4eceed1 100644 --- a/src/plugin/janusxr.lua +++ b/src/plugin/janusxr.lua @@ -34,12 +34,12 @@ app.on('scan_experience_file', function(exp) exp.janusxr.wrap = nil -- erase previous 3D models print("✅ └─ plugin/janusxr: " .. exp.file.name) if data:match(pattern_aframe) and app.opts.plugin_janusxr_wrap_aframe ~= '' then - if not data:match("\n' local url = v.redirect and v.redirect or v.url local overlay = v.title:match('overlay') and true or false -- Position current item diff --git a/src/test/plugin_janusxr.lua b/src/test/plugin_janusxr.lua index fc8d8a2..aa47490 100644 --- a/src/test/plugin_janusxr.lua +++ b/src/test/plugin_janusxr.lua @@ -7,7 +7,24 @@ return function(lust) describe('â„šī¸ wrap 3D file', function() -- Can be nested it('detect & serve to iframe', function() - -- *TODO* + app.init() + app.use( require('page/dir').middleware ) + app.use( app.response() ) + app.on('response', function(opts) + expect( not opts.res._body:match('use_local_asset=""') ).to.be.truthy() + end) + + local url = '/myverse/murials/murial2D' + + foreach(app.cache.items, function(k,exp) + if exp.url:match(url) then + if exp.url:match( url .. "$") then + --print_r(exp) + lust.queueServerRequest('GET', url, nil, nil, nil, nil, nil, 8080 ) + app.run() + end + end + end) end) end) diff --git a/src/util/build.sh b/src/util/build.sh index 4532609..147f53e 100755 --- a/src/util/build.sh +++ b/src/util/build.sh @@ -40,7 +40,12 @@ download(){ test -d janusweb-${version} || tar -xvf janusweb-${version}.tar.gz mv janusweb-${version} janusweb } - test -d src/janusweb || cp -Lr janusweb src/janusweb + set -x + rsync -avL janusweb src/. + # cleanup + rm src/janusweb/janusxr.com || true + # set xrforge as defualt config + cp src/janusweb/media/assets/webui/{xrforge,default}.json } "$@"