Skip to content

An interactive star map, written in Typescript and WebAssembly using Zig

License

Notifications You must be signed in to change notification settings

mjoerussell/onenightonearth

Repository files navigation

One Night on Earth

One Night on Earth is an interactive star map. This is not meant to be a scientific tool, it's simply a fun interactive experience.

One Night on Earth is written in Typescript and Zig.

onenightonearth.com

Controls

The controls currently available on the site are:

  1. Change Date - Update the date that the sky is simulated for
  2. Change Location - Enter a new latitude and/or longitude, then click 'Update Location' to move the simulation to the desired coordinates.
  3. 'Use My Location' - Navigate to your current location.
  4. 'Time Travel' - Click this button to start automatically advancing the date. Click again to stop.
  5. Drag and Move - Click and drag on the map to move the sky. Your updated coordinates will be populated in the 'Latitude' and 'Longitude' fields.
  6. Zoom - Scroll with your mouse while hovering over the map to zoom in/out.

Running Locally

There are a few steps to get started:

Pre-Requisites

On First Run Only:

  1. Run cd web && npm install
  2. Run cd prepare-data && zig build run -Drelease-fast -- ../zig-server/star_data.bin ../zig-server/const_data.bin ../zig-server/const_meta.json. This will create all of the data files that the server needs in order to run.

Each Run:

  1. In one terminal, run cd zig-server && zig build run.
  2. Run cd night-math && zig build -Drelease-fast. This will create the WASM module as well as the module TS interfaces.
  3. In another terminal, run cd web && npm start.

Now you're ready! Like before, visit localhost:8080 to view the site.

About

An interactive star map, written in Typescript and WebAssembly using Zig

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published