How uma-technology/skymap works
SkyMap is an offline, embeddable planetarium: a Vue web layer initializes a WebAssembly C engine, supplies observer and sky data, and presents the rendered sky to users and host applications through a JavaScript bridge. Users can search and select objects, change time and viewing settings, and explore sky imagery and overlays. The engine combines astronomical calculations, coordinate projection, rendering, and feature modules; bundled catalogs, surveys, landscapes, and translations provide its content. The README documents these capabilities, while sampled source directly confirms engine initialization, star-data registration, search behavior, and host readiness messages; other subsystem wiring is represented only where documented.
Main entry points: core.c Engine core · App.vue Vue application · jsbridge.js JavaScript bridge · components Sky controls
Components 21
Web interaction
- Vue application
apps/skymap-web/src/App.vue - Sky controls
apps/skymap-web/src/components - Object search
apps/skymap-web/src/components/target-search.vue - UI state
apps/skymap-web/src/store/index.js - JavaScript bridge
apps/skymap-web/src/utils/jsbridge.js
Sky engine
- Engine core
src/core.c - Sky feature modules
src/modules - Sky projection
src/projection.c - WebGL renderer
src/render_gl.c - Navigation
src/navigation.c
Sky content
- Star catalog
apps/skydata - Deep-sky catalog
apps/skydata - Sky surveys
apps/skydata - Landscapes
apps/skydata - Sky cultures
apps/skydata/skycultures - Translations
apps/skydata
Astronomy
- Astronomical algorithms
src/algos - Object model
src/obj.c - Observer state
src/observer.c
Other components
- Sky-map user
- Host application
Connections 24
- Sky-map user → Vue application: uses
- Vue application → Engine core: initializes
- Vue application → UI state: updates
- Vue application → JavaScript bridge: reports readiness
- Host application → JavaScript bridge: sends state
- JavaScript bridge → Vue application: delivers messages
- Sky-map user → Sky controls: changes view
- Sky controls → Engine core: sets engine state
- Sky-map user → Object search: enters query
- Object search → Engine core: looks up objects
- Engine core → Navigation: updates view
- Engine core → Observer state: uses observer
- Engine core → Astronomical algorithms: computes sky
- Engine core → Object model: manages objects
- Engine core → Sky feature modules: dispatches features
- Engine core → Sky projection: projects sky
- Engine core → WebGL renderer: draws scene
- Vue application → Star catalog: registers data
- Engine core → Star catalog: reads catalog
- Engine core → Deep-sky catalog: reads catalog
- Engine core → Sky surveys: reads imagery
- Engine core → Landscapes: reads scenery
- Engine core → Sky cultures: reads definitions
- Vue application → Translations: loads translations