From 4053afc81d0f2967fa2602b8312f1de3bdd37e36 Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Fri, 31 Jul 2026 19:46:50 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=83=20master:=20update=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 138 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 112 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index c6f4266..5c6f312 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,87 @@ -NOTES: +XRForge is a tiny, powerful tool to interconnect XR experiences.
-``` +## Adding content - /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 = [[ -
...
- ]] +First you need a directory with glTF or JanusXR experiences.
+Just run this in the terminal: +```bash +$ unzip xrforge.com myverse +$ tree myverse +myverse +├── janusxr +│   ├── helloworld +│   │   └── janusxr.xml +│   ├── janusxr.png +│   └── tronverse -> ../tronverse <--- +└── tronverse | recursive portals allowed + ├── janusxr -> ../janusxr <--- via symlinks + ├── tron + │   ├── README.md + │   ├── tron.glb + │   ├── tron.mp3 + │   └── tron.png + └── tronverse.png ``` -## Ideas +> optionally you can run `./xrforge.com admin` and change the `myverse` directory if needed. -* tabs horizontal stacked for xrforge.max.css -* fuzzy search: https://github.com/ssimonp/FuzzySearch-Roblox -* landingpage = /about -* scan functions in xrforge.lua / .xrforge -* video-hover: https://codepen.io/coderofsalvation/pen/YPNOyqx +Now xrforge.com will scan that local folder: + +```bash +$ ./xrforge.gom + scanning experiences (this make take a while..) + ✅ └─ plugin/diskscan: detected .png thumbnail file + ✅ ./myverse/janusxr 10927498 + ✅ ./myverse/janusxr/helloworld 10927500 + ✅ └─ plugin/janusxr: janusxr.xml + ✅ └─ plugin/diskscan: detected .png thumbnail file + ✅ └─ plugin/diskscan: detected .png thumbnail file + ✅ ./myverse/tronverse 10927503 + ✅ └─ plugin/diskscan: detected .png thumbnail file + ✅ ./myverse/tronverse/tron 10927504 + ✅ └─ plugin/xrfragments: detected .png sidecarfile + ✅ └─ plugin/markdown: detected README.md + ✅ └─ plugin/diskscan: detected .png thumbnail file + ℹ️ ./myverse/janusxr/tronverse + ✅ └─ plugin/diskscan: detected symlink..creating portal + ℹ️ ./myverse/tronverse/janusxr + ✅ └─ plugin/diskscan: detected symlink..creating portal +``` + +## Customizing + +After first (in the terminal) run a lua config file is created, which you can edit: + +```bash +$ xrforge.com +$ ls +xrforge.com +xrforge.lua +``` + +With basic HTML/CSS skills you can edit the templates by running this in the terminal: + +```bash +$ unzip xrforge.com page css +$ ls +page css +``` + +> Profit! You can now edit the extracted html-templates and css-files, they will be detected automatically when running xrforge.com + +Optionally you can re-distribute `xrforge.com` with your modifications by running `zip xrforge.com page` + +## Plugins + +xrforge is basically plugins working together.
+You can create your own plugins by running: + +```bash +$ ./xrforge.com createplugin > xrforge.myplugin.lua +``` + +Look in the [src/plugin](src/plugin) directory for examples ## Scan manyfold @@ -53,7 +106,6 @@ Then run with debug flag to see output of `trace()` calls $ DEBUG=1 result/bin/xrforge.com ``` - ## Permacomputing Spirit * developed on [Dillo](https://dillo-browser.github.io/) as lowest common denominator / compatibility @@ -70,3 +122,37 @@ $ DEBUG=1 result/bin/xrforge.com * [xrfragments](https://xrfragment.org) * [janusxr](https://github.com/jbaicoianu/janusweb) * [janusweb](https://janusxr.org) + +## Ideas + +* tabs horizontal stacked for xrforge.max.css +* fuzzy search: https://github.com/ssimonp/FuzzySearch-Roblox +* landingpage = /about +* scan functions in xrforge.lua / .xrforge +* video-hover: https://codepen.io/coderofsalvation/pen/YPNOyqx + +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 = [[ +
...
+ ]] + +``` + +