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 >
Developers can run it via [LÖVR ](https://lovr.org ) or [LÖVE2D ](https://love2d.org )
2026-06-06 12:35:31 +02:00
```
2026-06-12 11:46:14 +02:00
$ love xurfer < url > # if you have LÖVE2D installed (>v12)
$ lovr xurfer < url > # if you have LÖVR 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 09:08:48 +02:00
## Multiplatform Multimodal XR Browser
2026-06-08 14:41:38 +02:00
2026-06-12 09:08:48 +02:00
The aim of this project is providing **one [XR Hypermedia browser](https://xrhf.isvery.ninja) codebase** which gracefully degrades 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/ )
2026-06-12 09:59:47 +02:00
* 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
```