Skip to content

Jeffrey-P-McAteer/hackathon-2022-April

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hackathon Nonsense, April 2022 Edition

Plan:

  • build a python https server (vr/ar APIs are generally unavailable to http servers) that will:
    • Generate a self-signed ssl cert for a private IP
    • Serve a desktop/AR/VR web app
    • Serve a websocket comm ring the web app can use to keep state in sync across all connected devices (1 server == 1 "room")
    • Voice comm ring as well? May need to dip into WebRTC nonsense.

Public Server

https://hackathon-2022-april.jmcateer.pw:4430/

The server runs git pull every hour, so the latest committed www/ directory will be served. To re-start the python process (for new files & websocket routing logic) login to the server and run sudo systemctl restart hackathon-2022-april.service

Misc research

We will be using the WebXR Device API to use native AR/VR capabilities for display and pointer/hand input.

For iOS mobile devices this will require Mozilla's WebXR Viewer app.

Misc resources

VR JS Works on Oculus:

AR JS works on iphone / android:

If you need to generate an SSL cert tied to a domain name (b/c Mozilla's AR browser for iOS does not respect OS cert stores ヽ(ಠ_ಠ)ノ), using acme.sh:

yay -S acme.sh

acme.sh --register-account -m [email protected] --server zerossl

acme.sh --server zerossl --issue --dns -d publicip.jmcateer.pw -d localip.jmcateer.pw --yes-I-know-dns-manual-mode-enough-go-ahead-please
# Update DNS records, wait TTL minutes.
acme.sh --server zerossl --renew --dns -d publicip.jmcateer.pw -d localip.jmcateer.pw --yes-I-know-dns-manual-mode-enough-go-ahead-please

acme.sh --install-cert -d publicip.jmcateer.pw -d localip.jmcateer.pw --cert-file ssl/just_server.crt --key-file ssl/server.key --fullchain-file ssl/server.crt

Quickly reload peer machines:

window.socket.send('location.reload();')

Dependencies

  • python (3.8 or better or so, not picky)
  • One of
    • web browser (WASD movement controls)
    • smartphone (for AR experience, tap screen to move forward)
    • VR Headset (joystick to move, also move to move*)

* movement movement in VR does not broadcase position changes to other players, this is a known bug we need to add a few lines of JS to handle properly. Improvements incoming as soon as we get idle weekends!

Running

python -m run

Using

Open https://<server-ip>:4430/ in a browser on a cell phone or any VR headset. For Mozilla's WebXR viewer on iOS you will require a publicly-signed ssl certificate from a trusted provider (ACME servers work great for free SSL certs & are trusted by major OSes and browsers). Because we are testing these on private networks, my recommendation is to use the DNS challenge (documented above using acme.sh) and install the cert issued from there.

About the Authors

Jeff

Jeffrey enjoys making cool things. He is clever as he is confident and not least of all he is a very good friend. He can do anything and while very talented, he is at times a little pessimistic by his own account.

"I'm so pessimistic about everything."
— Jeffrey McAteer

Image of Jeff

Adam

Adam loves connecting people and ideas. He is enjoying learning new things and is eager to meet creators and other people who can't stop making things. Adam is passionate and will sometimes talk very excitedly about his interests.

"Can you repeat that? I was thinking about something else, related to this project, but I totally zoned out my bad"
— Adam Becerra

Image of Adam

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published