added peertube component + moved content into tech-demos + disabled openbrush downloads when internal-storage is used

This commit is contained in:
Leon van Kammen 2026-10-15 11:18:05 +02:00
parent 4dc6ff409c
commit d86be23a21
36 changed files with 2082 additions and 9 deletions

77
src/janusweb/index.html Normal file
View file

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html>
<head>
<title>JanusWeb</title>
<link rel="stylesheet" type="text/css" href="janusweb.css" media="all" />
<link rel="manifest" href="manifest.json">
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, maximum-scale=1.0, width=device-width" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="theme-color" content="#2f363b">
<meta property="og:type" content="website" />
<meta property="og:title" content="XRForge JanusWeb" />
<meta property="og:description" content="The World Within The Web" />
<meta property="og:image" content="https://janusxr.com/backgrounds/wallpapers/generic.png" />
<script src="janusweb.js"></script>
<script src="media/component/janus-script-peertube/translator.js"></script>
</head>
<body>
<janus-viewer src="./index.html"></janus-viewer> <!-- project this document in 3D -->
</body>
</html>
<!--
<fireboxroom>
<assets></assets>
<room use_local_asset="room_plane" fwd="0 0 1">
<object js_id="links" rotation="0 180 0">
<link js_id="1" pos="3 0 10" xdir="-0.866027 0 0.499998" ydir="0 1 0" zdir="-0.499998 0 -0.866027" url="https://www.reddit.com/r/vrsites" col="#ffffff" scale="1.5 3 1" draw_glow="false" >
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
</paragraph>
</link>
<link js_id="3" pos="5 0 8.5" xdir="-0.707109 0 0.707105" ydir="0 1 0" zdir="-0.707105 0 -0.707109" url="https://vesta.janusxr.org" col="#ffffff" scale="1.5 3 1" draw_glow="false">
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
</paragraph>
</link>
<link js_id="2" pos="-3 0 10" xdir="-0.866024 0 -0.500002" ydir="0 1 0" zdir="0.500002 0 -0.866024" url="workspaces" col="#ffffff" scale="1.5 3 1" draw_glow="false">
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
</paragraph>
</link>
<link js_id="4" pos="-5 0 8.5" xdir="-0.707106 0 -0.707108" ydir="0 1 0" zdir="0.707108 0 -0.707106" url="bookmarks" col="#ffffff" scale="1.5 3 1" draw_glow="false">
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
</paragraph>
</link>
<link js_id="0" pos="0 0 10.8" xdir="-1 0 -0.000002" ydir="0 1 0" zdir="0.000002 0 -1" url="https://www.janusxr.org/newlobby/index.html" col="#ffffff" scale="1.5 3 1" draw_glow="false">
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
</paragraph>
</link>
<link js_id="5" pos="-6.51 0 6.5" rotation="-180 65 -180" url="https://xrforge.isvery.ninja" col="#ffffff" scale="1.5 3 1" draw_glow="false">
<paragraph js_id="p" width="300" height="700" pos="0 1.53 0.05" transparent="true" scale="0.7 1.68 1" lighting="false">
<![CDATA[ <img src="media/images/portal.svg" width="300" height="700"/> ]]>
</paragraph>
</link>
</object>
</room>
</fireboxroom>
-->

View file

@ -0,0 +1,133 @@
[
{ "assettype":"model", "name":"capsule", "src":"assets/primitives/capsule.obj" },
{ "assettype":"model", "name":"cone", "src":"assets/primitives/cone.obj" },
{ "assettype":"model", "name":"cube", "src":"assets/primitives/cube.obj" },
{ "assettype":"model", "name":"cylinder", "src":"assets/primitives/cylinder.obj" },
{ "assettype":"model", "name":"pipe", "src":"assets/primitives/pipe.obj" },
{ "assettype":"model", "name":"plane", "src":"assets/primitives/plane.obj" },
{ "assettype":"model", "name":"pyramid", "src":"assets/primitives/pyramid.obj" },
{ "assettype":"model", "name":"sphere", "src":"assets/primitives/sphere.obj" },
{ "assettype":"model", "name":"torus", "src":"assets/primitives/torus.obj" },
{ "assettype":"image", "name":"room1_tex0", "src":"assets/rooms/room1.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room2_tex0", "src":"assets/rooms/room2.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room3_tex0", "src":"assets/rooms/room3.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room4_tex0", "src":"assets/rooms/room4.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room5_tex0", "src":"assets/rooms/room5.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room6_tex0", "src":"assets/rooms/room6.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_1pedestal_tex0", "src":"assets/rooms/room_1pedestal.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_2pedestal_tex0", "src":"assets/rooms/room_2pedestal.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_3_narrow_tex0", "src":"assets/rooms/room_3_narrow.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_3_wide_tex0", "src":"assets/rooms/room_3_wide.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_4_narrow_tex0", "src":"assets/rooms/room_4_narrow.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_4_wide_tex0", "src":"assets/rooms/room_4_wide.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_box_small_tex0", "src":"assets/rooms/room_box_small.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_box_medium_tex0", "src":"assets/rooms/room_box_medium.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room1_new_tex0", "src":"assets/rooms/room1_new.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_home_tex0", "src":"assets/rooms/room_home.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_plane_tex0", "src":"assets/rooms/tile_d.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"room_plane2_tex0", "src":"assets/rooms/room_plane2.png", "hasalpha": false, "preload": false },
{ "assettype":"model", "name":"room1", "src":"assets/rooms/room1.obj", "tex0":"room1_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room2", "src":"assets/rooms/room2.obj", "tex0":"room2_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room3", "src":"assets/rooms/room3.obj", "tex0":"room3_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room4", "src":"assets/rooms/room4.obj", "tex0":"room4_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room5", "src":"assets/rooms/room5.obj", "tex0":"room5_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room6", "src":"assets/rooms/room6.obj", "tex0":"room6_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_1pedestal", "src":"assets/rooms/room_1pedestal.obj", "tex0":"room_1pedestal_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_2pedestal", "src":"assets/rooms/room_2pedestal.obj", "tex0":"room_2pedestal_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_3_narrow", "src":"assets/rooms/room_3_narrow.obj", "tex0":"room_3_narrow_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_3_wide", "src":"assets/rooms/room_3_wide.obj", "tex0":"room_3_wide_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_4_narrow", "src":"assets/rooms/room_4_narrow.obj", "tex0":"room_4_narrow_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_4_wide", "src":"assets/rooms/room_4_wide.obj", "tex0":"room_4_wide_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_box_small", "src":"assets/rooms/room_box_small.obj", "tex0":"room_box_small_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_box_medium", "src":"assets/rooms/room_box_medium.obj", "tex0":"room_box_medium_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room1_new", "src":"assets/rooms/room1_new.obj", "tex0":"room1_new_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_home", "src":"assets/rooms/room_home.obj", "tex0":"room_home_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_plane", "src":"assets/rooms/room_plane.obj", "tex0":"room_plane_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room_plane2", "src":"assets/rooms/room_plane2.obj", "tex0":"room_plane2_tex0", "hasalpha": false },
{ "assettype":"model", "name":"room1_collision", "src":"assets/rooms/room1_collision.obj" },
{ "assettype":"model", "name":"room2_collision", "src":"assets/rooms/room2_collision.obj" },
{ "assettype":"model", "name":"room3_collision", "src":"assets/rooms/room3_collision.obj" },
{ "assettype":"model", "name":"room4_collision", "src":"assets/rooms/room4_collision.obj" },
{ "assettype":"model", "name":"room5_collision", "src":"assets/rooms/room5_collision.obj" },
{ "assettype":"model", "name":"room6_collision", "src":"assets/rooms/room6_collision.obj" },
{ "assettype":"model", "name":"room_1pedestal_collision", "src":"assets/rooms/room_1pedestal_collision.obj" },
{ "assettype":"model", "name":"room_2pedestal_collision", "src":"assets/rooms/room_2pedestal_collision.obj" },
{ "assettype":"model", "name":"room_3_narrow_collision", "src":"assets/rooms/room_3_narrow_collision.obj" },
{ "assettype":"model", "name":"room_3_wide_collision", "src":"assets/rooms/room_3_wide_collision.obj" },
{ "assettype":"model", "name":"room_4_narrow_collision", "src":"assets/rooms/room_4_narrow_collision.obj" },
{ "assettype":"model", "name":"room_4_wide_collision", "src":"assets/rooms/room_4_wide_collision.obj" },
{ "assettype":"model", "name":"room_box_small_collision", "src":"assets/rooms/room_box_small_collision.obj" },
{ "assettype":"model", "name":"room_box_medium_collision", "src":"assets/rooms/room_box_medium_collision.obj" },
{ "assettype":"model", "name":"room1_new_collision", "src":"assets/rooms/room1_new_collision.obj" },
{ "assettype":"model", "name":"room_home_collision", "src":"assets/rooms/room_home_collision.obj" },
{ "assettype":"model", "name":"room_plane_collision", "src":"assets/rooms/room_plane_collision.obj" },
{ "assettype":"model", "name":"room_plane2_collision", "src":"assets/rooms/room_plane2_collision.obj" },
{ "assettype":"image", "name":"black", "src":"assets/black.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"clear", "src":"assets/clear.png", "hasalpha": true, "preload": false },
{ "assettype":"image", "name":"dark_back", "src":"assets/skybox/dark_back.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dark_down", "src":"assets/skybox/dark_down.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dark_front", "src":"assets/skybox/dark_front.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dark_left", "src":"assets/skybox/dark_left.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dark_right", "src":"assets/skybox/dark_right.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dark_up", "src":"assets/skybox/dark_up.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"miramar_back", "src":"assets/skybox/miramar_back.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"miramar_down", "src":"assets/skybox/miramar_down.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"miramar_front", "src":"assets/skybox/miramar_front.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"miramar_left", "src":"assets/skybox/miramar_left.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"miramar_right", "src":"assets/skybox/miramar_right.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"miramar_up", "src":"assets/skybox/miramar_up.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"skyrender_back", "src":"assets/skybox/skyrender_back.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"skyrender_down", "src":"assets/skybox/skyrender_down.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"skyrender_front", "src":"assets/skybox/skyrender_front.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"skyrender_left", "src":"assets/skybox/skyrender_left.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"skyrender_right", "src":"assets/skybox/skyrender_right.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"skyrender_up", "src":"assets/skybox/skyrender_up.png", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dayskybox_back", "src":"assets/skybox/Day/Dayback.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dayskybox_down", "src":"assets/skybox/Day/Daybottom.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dayskybox_front", "src":"assets/skybox/Day/Dayfront.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dayskybox_left", "src":"assets/skybox/Day/Dayleft.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dayskybox_right", "src":"assets/skybox/Day/Dayright.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"dayskybox_up", "src":"assets/skybox/Day/Daytop.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"nightskybox_back", "src":"assets/skybox/Night/Nightback.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"nightskybox_down", "src":"assets/skybox/Night/Nightbottom.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"nightskybox_front", "src":"assets/skybox/Night/Nightfront.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"nightskybox_left", "src":"assets/skybox/Night/Nightleft.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"nightskybox_right", "src":"assets/skybox/Night/Nightright.jpg", "hasalpha": false, "preload": false },
{ "assettype":"image", "name":"nightskybox_up", "src":"assets/skybox/Night/Nighttop.jpg", "hasalpha": false, "preload": false },
{ "assettype":"model", "name":"avatar", "src":"assets/avatar.obj", "tex0": "avatar_tex0" },
{ "assettype":"model", "name":"avatar_head", "src":"assets/avatar_head.obj", "tex0": "avatar_head_tex0" },
{ "assettype":"model", "name":"avatar_gltf", "src":"assets/janus-avatar-base.glb" },
{ "assettype":"model", "name":"avatar_animations", "src":"assets/janus-avatar-animations.glb" },
{ "assettype":"image", "name":"avatar_tex0", "src":"assets/avatar.png", "preload": false },
{ "assettype":"image", "name":"avatar_head_tex0", "src":"assets/avatar_head.png", "preload": false },
{ "assettype":"model", "name":"avatar_janusweb", "src":"assets/hoverscreen.obj" },
{ "assettype":"model", "name":"loading", "src":"assets/loading.obj" },
{ "assettype":"image", "name":"cursor_arrow", "src":"assets/cursor/arrow.png", "hasalpha": true },
{ "assettype":"image", "name":"cursor_crosshair", "src":"assets/cursor/crosshair.png", "hasalpha": true },
{ "assettype":"image", "name":"cursor_hand", "src":"assets/cursor/hand.png", "hasalpha": true },
{ "assettype":"image", "name":"cursor_dot_inactive", "src":"assets/cursor/cursor-dot-white.png", "hasalpha": true },
{ "assettype":"image", "name":"cursor_dot_active", "src":"assets/cursor/cursor-dot-green.png", "hasalpha": true },
{ "assettype":"model", "name":"controller_daydream", "src":"assets/controllers/daydream/vr_controller_daydream.obj", "mtl":"vr_controller_daydream.mtl" },
{ "assettype":"model", "name":"controller_vive", "src":"assets/controllers/vive/ViveController.dae.gz" },
{ "assettype":"model", "name":"controller_touch_left", "src":"assets/controllers/oculus/TouchLeftModified.dae.gz" },
{ "assettype":"model", "name":"controller_touch_right", "src":"assets/controllers/oculus/TouchRight.dae.gz" },
{ "assettype":"font", "name":"helvetiker", "src":"assets/fonts/helvetiker_regular.typeface.json" },
{ "assettype":"shader", "name":"defaultportal", "shadertype":"shadertoy","fragment_src":"assets/shaders/greenportal2.shadertoy.frag", "preload":true },
{ "assettype":"model", "name":"button", "src":"component/janus-script-peertube/asset/button.glb", "preload":true},
{ "assettype":"model", "name":"icon", "src":"component/janus-script-peertube/asset/button.icon.glb", "preload":true},
{ "assettype":"sound", "name":"button-click", "src":"component/janus-script-peertube/asset/button.click.mp3", "preload":true},
{ "assettype":"sound", "name":"button-hover", "src":"component/janus-script-peertube/asset/button.hover.mp3", "preload":true}
]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,104 @@
const PeertubeTranslatorBaseURL = document.currentScript.src.replace("/translator.js","")
elation.require([], function() {
elation.component.add('janusweb.translators.peertube', function() {
this.init = function() {
this.description = "peertube website to 3D translator"
}
this.exec = function(args) {
return new Promise(elation.bind(this, function(resolve, reject) {
var room = this.room = args.room;
reject() // for now
this.setupEvents()
var datapath = elation.config.get('janusweb.datapath', '/media/janusweb');
var roomdata = {
assets: {
assetlist: [
// {assettype: 'model', name: 'scene', src: args.url},
]
},
room: {
pos: [0,0,0],
xdir: "1 0 0",
zdir: "0 0 1",
},
object: [
// {id: 'scene', js_id: 0, pos: "0 0 0", xdir: "-1 0 0", zdir: "0 0 -1", lighting: "false"}
],
link: []
};
resolve(roomdata);
}));
}
// translate XR Fragments microformat into JML
this.parseSource = async function(sourcecode, room){
this.room = room
const isJML = /<fireboxroom>[\s\S]*?<\/fireboxroom>/si;
const isPeertube = /<meta\s+[^>]*property=['"]og:platform['"]\s+[^>]*content=['"]peertube['"][^>]*\/?>/si;
const isPeertubeVideo = /<meta\s+[^>]*property=['"]og:type['"]\s+[^>]*content=['"]video['"][^>]*\/?>/si;
const isPeertubeInstance = /<meta\s+[^>]*property=['"]og:type['"]\s+[^>]*content=['"]website['"][^>]*\/?>/si;
const is = {
JML: sourcecode.match(isJML),
peertube: sourcecode.match(isPeertube),
peertubeVideo: sourcecode.match(isPeertubeVideo),
peertubeInstance: sourcecode.match(isPeertubeInstance),
}
if( is.JML || !is.peertube ) return // JML takes precedence over microformats
if( !is.peertubeVideo && !is.peertubeInstance ) return
// ok..peertube time: get domtree
let el = document.createElement("div")
el.innerHTML = sourcecode
// try to fetch title + cover
const title = el.querySelector("title")
let logo = el.querySelector("meta[property='og:image']")?.getAttribute("content")
logo = logo ? logo : el.querySelector("meta[property='og:image:url']")?.getAttribute("content")
let url = new URL( String(room.url) )
let instance = url?.origin
let search = url?.search ? new URLSearchParams(url.search).get("search") : ""
room.corsproxy = ''
// return JML
let parsed = room.parseSource(`
<title>${ title ? title.innerText.replace(/\n.*/g,'') : room.baseurl.split("/").pop() }</title>
<FireBoxRoom>
<Assets>
${ logo ? `<assetimage src="${logo}" id="logo"/>` : ''}
<assetscript src="${PeertubeTranslatorBaseURL}/janus-script-peertube.js" proxy="false"/>
</Assets>
<Room use_local_asset="room5" pos="1.15 0 -5">
${ is.peertubeInstance ? `<peertube-app pos="4.55 2.71 0" scale="2 2 1" rotation="0 90 0" js_id="mypeertube-app" instance="${instance}" ${search?`search="${search}"`:``} autoload="true"/>`
: `<peertube pos="4.55 2.71 0" scale="2 2 1" rotation="0 90 0" js_id="peertube" src="${room.url}" auto_play="true"/>`
}
<object position='12.2 0 0' rotation="0 -90 0">
${ logo ? `<image id="logo" pos='0 5 0' scale='3 3 2' lighting="false" />` : ''}
<text text="${room.url.replace(/.*:\/\//,'')}" pos='0 1.45 0' scale='7 7 7' lighting="false" col='#000000'/>
<text text="Peertube" pos='0 8.6 0' scale='4 4 4' lighting="false" col='#000000'/>
</object>
</Room>
</FireBoxRoom>
`)
return parsed
}
// peertube microformat heuristic: <meta property="og:platform" content="PeerTube">
this.parseSource.regex = /<meta\s+[^>]*property=['"]og:platform['"]\s+[^>]*content=['"]peertube['"][^>]*\/?>/si;
});
});
elation.events.add(null, 'room_translator_register', function(e){
const room = e.element
const translators = e.data.translators
// prepend translator
e.data.translators = {}
e.data.translators['!peertube'] = elation.janusweb.translators.peertube({janus: janus})
for( let i in translators ){
e.data.translators[i] = translators[i]
}
})

View file

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View file

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View file

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View file

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View file

Before

Width:  |  Height:  |  Size: 315 KiB

After

Width:  |  Height:  |  Size: 315 KiB

View file

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -2,7 +2,11 @@ local util = require('util')
local apiSync = require('apiSync') local apiSync = require('apiSync')
app.on('init', function() app.on('init', function()
app.plugin.openbrush.api = apiSync.init( 'openbrush' ) if not app.opts.plugin_diskscan_dir:match("^/zip/") then
app.plugin.openbrush.api = apiSync.init( 'openbrush' )
else
print("[openbrush.lua] disabled..please create a 'myverse' dir we can store files into")
end
end) end)
local function scanTiltFile(exp) local function scanTiltFile(exp)
@ -116,7 +120,7 @@ local plugin = {
key='app.opts.plugin_openbrush_sync_folder', key='app.opts.plugin_openbrush_sync_folder',
title='Sync to folder', title='Sync to folder',
info='openbrush (icosa.gallery) assets will be saved here', info='openbrush (icosa.gallery) assets will be saved here',
default = "./myverse/tronverse", default = "./myverse/tech-demos/tronverse",
type = "dir", type = "dir",
values = {} -- populated by plugin/diskscan.lua values = {} -- populated by plugin/diskscan.lua
}, },

View file

@ -4,7 +4,7 @@ OUTDIR=result/bin
REDBEAN_URL="https://redbean.dev/redbean-3.0.0.com" REDBEAN_URL="https://redbean.dev/redbean-3.0.0.com"
REDBEAN_CRC="382f1288bb96ace4bab5145e7df236846c33cc4f1be69233710682a9e71e7467 $OUTDIR/xrforge.com" REDBEAN_CRC="382f1288bb96ace4bab5145e7df236846c33cc4f1be69233710682a9e71e7467 $OUTDIR/xrforge.com"
download(){ get(){
redbean(){ redbean(){
test -d $OUTDIR || mkdir -p $OUTDIR test -d $OUTDIR || mkdir -p $OUTDIR
@ -32,18 +32,20 @@ download(){
janusweb(){ janusweb(){
set -x set -x
test -d janusweb || { test -d pkg/janusweb || {
version=1.7.5 mkdir pkg &>/dev/null || true
test -f janusweb-${version}.tar.gz || { test -f janusweb-${version}.tar.gz || {
wget "https://github.com/coderofsalvation/janusweb/releases/download/v${version}-rc/janusweb-${version}.tar.gz" wget "https://github.com/coderofsalvation/janusweb/releases/download/v${version}-rc/janusweb-${version}.tar.gz"
} }
test -d janusweb-${version} || tar -xvf janusweb-${version}.tar.gz test -d janusweb-${version} || tar -xvf janusweb-${version}.tar.gz
mv janusweb-${version} janusweb mv janusweb-${version} pkg/janusweb
} }
set -x set -x
rsync -avL janusweb src/. rsync -avLu pkg/janusweb src/. # overlay but leave newer files intact
# cleanup # cleanup
rm src/janusweb/janusxr.com || true rm src/janusweb/janusxr.com || true
rm src/janusweb/test || true
rm src/janusweb/media/test || true
# set xrforge as defualt config # set xrforge as defualt config
cp src/janusweb/media/assets/webui/{xrforge,default}.json cp src/janusweb/media/assets/webui/{xrforge,default}.json
} }
@ -52,11 +54,12 @@ download(){
} }
build(){ build(){
download redbean get redbean
download janusweb get janusweb
cd src cd src
bundle(){ zip -yr $1 * .lua .init.lua .args; } bundle(){ zip -yr $1 * .lua .init.lua .args; }
bundle ../result/bin/xrforge.com bundle ../result/bin/xrforge.com
unzip -l ../result/bin/xrforge.com
test -n "$ARCH" && bundle ../result/bin/xrforge-$ARCH.com test -n "$ARCH" && bundle ../result/bin/xrforge-$ARCH.com
} }