No description
Find a file
2026-07-24 20:57:43 +02:00
src 🔧 master: work in progress [might break] 2026-07-24 20:57:43 +02:00
util wip support symlinks/recursion dirs + tests 2026-07-24 17:06:31 +02:00
.env 🔧 master: work in progress [might break] 2026-07-23 15:20:25 +02:00
.gitignore wip support symlinks/recursion dirs + tests 2026-07-24 17:06:31 +02:00
default.nix 1st commit 2026-05-15 13:22:33 +02:00
README.md 🔧 master: work in progress [might break] 2026-07-24 20:57:43 +02:00
run.sh wip support symlinks/recursion dirs + tests 2026-07-24 17:06:31 +02:00
shell.nix 1st commit 2026-05-15 13:22:33 +02:00

NOTES:


                   /admin.lua <--- define other instances..for CORS allow / mount http
                                   configure in-zip or filesystem-cache

                   opendirectory.lua <--- mount other instances over http (via xrforge or rclone)

.xrforge/hook/scandir <-- event to hook 

scan files                                      
----------             middleware/xrexperience.lua
  | events:            ---------------------
  + file               type: sidecarfile 
  + sidecarfiles --->  regex =  {"\.glb", "\.png", "\.vtt"} 
  |                    regex_minmatch = 2
  + folder             viewer = /view/janusweb/#janus.url=${file}.glb
                       template = [[
                         <div class="tile"> ... </div>
                       ]]

Ideas

Scan manyfold


manual scan (via cli?)
curl -L -X 'GET'   'http://xrforge.isvery.ninja/models?page=1&order=name'     -H 'accept: application/vnd.manyfold.v0+json'
curl -L -X 'GET'   'http://xrforge.isvery.ninja/models?page=1&order=recent'   -H 'accept: application/vnd.manyfold.v0+json'

Developing

$ source .env            # not needed if your system has autoenv
$ build                  # fast: repeatable build
$ rebuild                # faster: lua-repeatable build
$ nix-build              # slow: reproducable nix build (for experts)

Then run with debug flag to see output of trace() calls

$ DEBUG=1 result/bin/xrforge.com

Permacomputing Spirit

  • developed on Dillo as lowest common denominator / compatibility
  • does not use javascript (WebXR viewer being the exception)
  • gracefully degrades to admin/filebrowser for >noscript>/potato-browsers
  • server is using lua-scripting via cosmopolitan libc's redbean

So yes, the codebase/html/css is intentionally 90-ish: that's exactly why it works on potato-devices AND modern devices.