xurfer/README.md

53 lines
2.4 KiB
Markdown
Raw Normal View History

2026-06-12 12:31:41 +02:00
> NOTE: currently being worked on, not ready for beta (yet)
2026-06-08 14:41:38 +02:00
## Usage
2026-06-06 12:35:31 +02:00
2026-06-08 14:41:38 +02:00
Download/run the binaries for your platform in the releases section.<br>
2026-06-12 23:24:33 +02:00
---
Developers can run it via [Lua](https://lua.org), [LÖVR](https://lovr.org) or [LÖVE2D](https://love2d.org)
2026-06-06 12:35:31 +02:00
```
2026-06-12 23:24:33 +02:00
$ love xurfer <url> [..] # if you have LÖVE2D installed (>v12)
$ lovr xurfer <url> [..] # if you have LÖVR installed
$ lua xurfer/main.lua <url> [..] # if you have lua installed
2026-06-06 12:35:31 +02:00
```
2026-06-12 11:46:14 +02:00
**Example**: lovr xurfer <a href="https://snips.sh/f/_U5-XctEVE?r=1">https://snips.sh/f/_U5-XctEVE?r=1</a>
2026-06-12 12:29:46 +02:00
![](xurfer.webp)
2026-06-12 09:08:48 +02:00
## Multiplatform Multimodal XR Browser
2026-06-08 14:41:38 +02:00
2026-06-12 22:50:38 +02:00
The aim of this project is providing **a [XR Hypermedia browser](https://xrhf.isvery.ninja) codebase** to surf [JanusXR](https://coderofsalvation.github.io/janus-guide/#/)/[XRF](https://xrfragment.org) URL's, which gracefully degrade from OpenXR to handheld/embedded/braille devices:
2026-06-08 14:41:38 +02:00
* mac/win/linux/android via [LÖVE2D](https://love2d.org)
* mac/win/linux/android via [LÖVR](https://lovr.org)
* Web (2D) via [love.js](https://github.com/Davidobot/love.js)
* Nintendo 3DS, Switch, and Wii via [lovebrew](https://lovebrew.org/)
* Handhelds: Steamdeck, Anbernic, Gameforce, Game Kiddy, Powkiddy (..and more) via [portmaster](https://portmaster.games/supported-devices.html)
* Game emulators via [lutro](https://lutro.libretro.com/)
* Embedded devices via [nelua](https://nelua.io) or straightup [lua](https://lua.org)
2026-06-08 14:41:38 +02:00
2026-06-12 11:51:46 +02:00
## XR URI support
2026-06-12 11:59:01 +02:00
| type | supported standards | extension | platforms |
2026-06-12 11:56:29 +02:00
|-------|----------------|----------|--|-----------|
2026-06-12 11:59:01 +02:00
| `.glb` `.gltf` | [khronos/gltf](https://www.khronos.org/gltf/) geometry + [xrfragment level 2](https://xrfragment.org/#%F0%9F%93%9C%20level2%3A%20explicit%20hyperlinks) | [3DFile](xurfer/ext/3DFile/main.lua) | lovr |
2026-06-12 11:57:30 +02:00
| `.obj` | [WaveFront OBJ](https://docs.fileformat.com/3d/obj/)| [3DFile](xurfer/ext/3DFile/main.lua) | lovr |
2026-06-12 11:58:14 +02:00
| any URL/file | [Janus](https://coderofsalvation.github.io/janus-guide/) Markup Language (JML) + [xrfragment level 0+1+2](https://xrfragment.org) | [janusxr](xurfer/ext/janusxr/main.lua) | all |
2026-06-12 11:51:46 +02:00
2026-06-12 09:08:48 +02:00
## very hackable extensions
2026-06-08 14:41:38 +02:00
* XURFER does everything via browser extensions.<br>
* XURFER is the total sum of browser extensions.<br>
So you can strip/bloat however you want, or build one yourself:
2026-06-06 12:35:31 +02:00
```
2026-06-12 11:46:14 +02:00
$ cp xurfer/ext/skeleton xurfer/ext/myextension
$ sed 's|skeleton|myextension|g' xurfer/ext/myextension/*
$ ./lovr xurfer
2026-06-08 14:41:38 +02:00
[i] loading 'myextension'
...
2026-06-06 12:35:31 +02:00
```