GitHub Hot Board

GitHub Hot Board · Depo arşivi

sgi-demos/sgi-demos

SGI demos from long ago, running in your browser today. (Bu açıklama depodan gelir.)

Veri tarihi October 26sgi-demos

En iyi sıra

#291

İhmal Edilmiş Hazineler

100

Toplam yıldız

8

Toplam fork

3

Son 30 günde sıralama günü

Proje durumuLisans: Apache-2.0Son push: September 27Açık issue (PR dahil): 9

2026-10-25’ten beri toplanıyor; bilinmiyor = henüz toplanmadı

Rozeti README’ne koy · sgi-demos/sgi-demos[![Rozeti README’ne koy](https://git.vaiox.xyz/api/badge/sgi-demos/sgi-demos.svg)](https://git.vaiox.xyz/tr/repo/sgi-demos/sgi-demos)
<a href="https://git.vaiox.xyz/tr/repo/sgi-demos/sgi-demos"><img src="https://git.vaiox.xyz/api/badge/sgi-demos/sgi-demos.svg" alt="Rozeti README’ne koy" height="20"></a>

Proje belgeleri

SGI demos from long ago, running in your browser today.

It's a UNIX system. I know this!

This is the original SGI demo source code, compiled for the web using Emscripten and SDL2. Rendering is done via an IRIS GL-to-GLES2/3 rasterizer or a reference software rasterizer forked from the Alice 4 project. Event handling is done by SDL2, with events translated into GL's event system.

Each demo is a separate web page, with its own Javascript + WASM compiled by Emscripten from the original C/C++ source. Native Linux, Mac, and Windows builds are also available. Minimal modifications have been made to the original source, only what is necessary to build them 30+ years later for modern hardware and the browser.

See the copyright doc for thorough copyright considerations, the architecture doc for implementation details, and the latest smoke test for build status.

ArenaBounceButtonflyCeditElectropaint 1988Electropaint 1989
ArenaBounceButtonflyCeditElectropaint 1988Electropaint 1989
Electropaint 1994FlightFlight 3.4Gview: the Barcelona PavilionIdeas in MotionInsect
Electropaint 1994FlightFlight 3.4Gview: the Barcelona PavilionIdeas in MotionInsect
JelloLogoNewavePerformer TownTwilight
JelloLogoNewavePerformer TownTwilight

Demos coming next

  • More IRIS GL demos
  • Aux/Tk OpenGL demos
  • GLUT OpenGL demos
  • Inventor Slotcars, Maze
  • Performer Matterhorn, Yosemite

Build

Every platform needs a C compiler, SDL2, Emscripten, bison (buttonfly's menu parser), and Python 3. make then builds every demo twice: natively into demos/<name>/bin/, and for the web into demos/<name>/web/. make native or make browser builds just one of the two, make libs just the libraries (a quick compile check while editing one), and make list prints the demos. To add a demo, see docs/ADD_A_DEMO.md.

Mac

  1. Install Homebrew if you don't have it, then get SDL2 and Emscripten:
brew install SDL2
brew install emscripten
  1. Build:
git clone https://github.com/sgi-demos/sgi-demos.git
cd sgi-demos
make

Linux

  1. Install the compiler, SDL2, bison, and Python (Debian and Ubuntu package names):
sudo apt install build-essential libsdl2-dev bison python3
  1. Install Emscripten with emsdk, following its directions, and add source /path/to/emsdk/emsdk_env.sh to your ~/.bashrc.

  2. Build:

git clone https://github.com/sgi-demos/sgi-demos.git
cd sgi-demos
make

Windows

  1. Install Winget if you don't have it.

  2. Install MSYS2 from cmd.exe, in order to get the clang compiler:

winget install MSYS2.MSYS2
setx PATH "%PATH%;C:\msys64\clang64\bin"
  1. Install clang toolchain, SDL2, bison, and Python in MSYS2 CLANG64 shell:
pacman -Syu
pacman -S base-devel mingw-w64-clang-x86_64-toolchain
pacman -S mingw-w64-clang-x86_64-SDL2
pacman -S bison mingw-w64-clang-x86_64-python
  1. Clone emscripten from Github. Cloning seems to work best with MSYS2 rather than using pacman. Follow the default install directions, not the Windows directions!

  2. Add this line to the ~/.bashrc file in MSYS2 CLANG64 shell:

source /path/to/emsdk/emsdk_env.sh
  1. Build:
git clone https://github.com/sgi-demos/sgi-demos.git
cd sgi-demos
make

Run

A native build runs from its demo's directory, where it finds its data files:

cd demos/jello && ./bin/jello

The web build runs from any local web server at the repository root; make run-browser -C demos/jello starts one with emrun and opens the demo. Otherwise:

python3 -m http.server 8000

then open http://localhost:8000/demos/jello/web/.

Runtime switches, such as IRISGL_RAST=ref (?rast=ref on the web) for the CPU reference rasterizer, are listed in the architecture doc. make smoke runs the headless-browser smoke tests of every web build (see tests/smoke).

To do

  • Fix logged issues
  • Link each demo's man page from its placard
  • Add 'inspect demo' mode to pause, orbit, zoom, pan, fly through demo scene (as a hidden override to the demo's own controls)
  • Provide virtual mouse and keyboard for touch devices:
    • Only display virtual keys and mouse functions used by the demo; use demo's qdevice() calls to determine this
    • Displayed as transparent virtual mouse and key pictures overlaid on demo
    • On always for touch devices
    • On/off for mouse/keyboard devices, as hints

License

The sgi-demos code (the IRIS GL implementation, rasterizers, SDL layers, shims, build files, tests, and docs) is Apache License 2.0; see LICENSE and NOTICE. The original SGI demos, headers, and data, and Electropaint, are not covered by that license and retain their original authors' terms; several carry SGI's or the author's permissive notice, the rest are used under fair use. Every original notice is preserved. The full provenance and fair-use record for every demo and library is in docs/COPYRIGHT.md. This project is not affiliated with or endorsed by Hewlett Packard Enterprise, Silicon Graphics, or Tristram Visual.

Credits

Mevcut sıralamalar

Son 30 gün grafiği

Toplam yıldız

Sıra grafiği

Günlük kazanç

Aynı panoda komşu sıralar · İhmal edilmiş

Benzer projeler · ortak konular

← Sıralamalara dön