This is a work in progress.
Aim is to simulate take off, space station docking, and moon landing with a futuristic space plane.
Requires OpenGL 4.5.
Installation
- Tested on Debian 12 and Windows 11
- Install JDK 23 (needed because of the shiny new foreign function and memory API)
- Install Clojure 1.12
- Download Packr Jar file for creating Windows executable
- Install NSIS for building Windows installer
Install JoltPhysics
cd Build
./cmake_linux_clang_gcc.sh Release g++ -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DDOUBLE_PRECISION=ON -DDEBUG_RENDERER_IN_DEBUG_AND_RELEASE=OFF -DPROFILER_IN_DEBUG_AND_RELEASE=OFF
cd Linux_Release
make -j `nproc`
sudo make install
cd ../..
Build
- Build Worley noise:
clj -T:build worley
- Build Perlin noise:
clj -T:build perlin
- Build blue noise:
clj -T:build bluenoise
- Build cloud cover:
clj -T:build cloud-cover
- Download NASA Bluemarble data:
clj -T:build download-bluemarble
- Download NASA Blackmarble data:
clj -T:build download-Blackmarble
- Download NOAA elevation data:
clj -T:build download-elevation
- Download NASA JPL ephemeris data:
clj -T:build download-ephemeris
- Extract elevation data:
clj -T:build extract-elevation
- Convert day map sectors into pyramid of tiles:
clj -T:build map-sectors-day
- Convert night map sectors into pyramid of tiles:
clj -T:build map-sectors-night
- Convert elevation sectors into pyramid of tiles:
clj -T:build elevation-sectors
- Convert tile pyramids into pyramid of cube maps:
clj -T:build cube-maps
- Build atmosphere lookup tables:
clj -T:build atmosphere-lut
- Perform all build steps above:
clj -T:build all
- Enable integration tests (requiring results of above build steps):
touch .integration
- Build JAR file:
clj -T:build uber
- Create Windows executable:
java -jar packr-all-4.0.0.jar packr-config.json
(delete out-windows folder first)
- Create Windows installer:
makensis nsis-config.nsi
Lint
Run
- Run tests:
clj -M:test
- Run test for specific module (rendering for example):
clj -M:test sfsim.t-render
- Run the global cloud cover prototype:
clj -M etc/cover.clj
- Run main program:
clj -M:run
External Links
- Simulators
- Engines
- LWJGL
- Publications
- Webpages
- Videos