GitHub Hot Board

GitHub Hot Board · Hồ sơ kho lưu trữ

sgi-demos/sgi-demos

SGI demos from long ago, running in your browser today. (Mô tả đến từ chính kho lưu trữ.)

Dữ liệu tại October 26sgi-demos

Thứ hạng tốt nhất

#285

Kho Báu Bị Lãng Quên

100

Tổng sao

8

Tổng fork

3

Số ngày có mặt (30 ngày)

Trạng thái dự ánGiấy phép: Apache-2.0Push gần nhất: September 27Issue mở (gồm PR): 9

Thu thập từ 2026-10-25; chưa rõ = chưa thu thập được

Gắn huy hiệu vào README của bạn · sgi-demos/sgi-demos[![Gắn huy hiệu vào README của bạn](https://git.vaiox.xyz/api/badge/sgi-demos/sgi-demos.svg)](https://git.vaiox.xyz/vi/repo/sgi-demos/sgi-demos)
<a href="https://git.vaiox.xyz/vi/repo/sgi-demos/sgi-demos"><img src="https://git.vaiox.xyz/api/badge/sgi-demos/sgi-demos.svg" alt="Gắn huy hiệu vào README của bạn" height="20"></a>

Tài liệu dự án

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

Thứ hạng hiện tại

  • 285

    Kho Báu Bị Lãng Quên

    100 sao · 8 fork · Tổng Star (tăng dần)

    Lãng quên →

Diễn biến 30 ngày

Tổng số sao

Diễn biến thứ hạng

Tăng sao hằng ngày

Hàng xóm xếp hạng trên cùng bảng · Lãng quên

Dự án tương tự · chủ đề chung

← Về bảng xếp hạng