gitwtfhub

wtf is three-descent?

mrdoob/three-descent — explained in plain English

Analysis updated 2026-07-27 · repo last pushed 2026-06-03

87JavaScriptAudience · generalComplexity · 2/5MaintainedSetup · easy

TL;DR

Play the classic 1995 3D spaceship shooter Descent directly in your web browser. Built with Three.js, it runs the original game data with no plugins or installations required.

Mindmap

mindmap
  root((repo))
    What it does
      Runs Descent in browser
      Six degrees of freedom
      No plugins needed
    Game content
      Shareware Episode 1
      Load full game files
      Original level formats
    Tech stack
      JavaScript
      Three.js
      Original Descent source
    Audience
      Retro gaming fans
      Web developers
      Three.js learners

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Play the shareware version of Descent Episode 1 for free in your browser.

REASON 2

Drop in your own registered Descent game files to play the full game on the web.

REASON 3

Study the code to see how a classic 3D game engine can be ported to Three.js.

What's in the stack?

JavaScriptThree.js

How it stacks up

mrdoob/three-descentmaxi1134/bps-improvedenergypantry/agent-browser-runtime
Stars878786
LanguageJavaScriptJavaScriptJavaScript
Last pushed2026-06-03
MaintenanceMaintained
Setup difficultyeasyhardhard
Complexity2/54/54/5
Audiencegeneralops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

Just open the webpage in a modern browser, no installation, plugins, or setup required.

No license information is provided in the repository, so default copyright restrictions apply and usage rights are unclear.

Wtf does this do

three-descent brings the classic 1995 first-person shooter Descent to your web browser. Descent was famous for its six-degrees-of-freedom gameplay, meaning you pilot a spaceship through fully 3D tunnels and chambers, rotating and moving in any direction, up, down, sideways, and everything in between. Instead of digging out a vintage PC or setting up an emulator, you can just visit a webpage and start playing. The project runs entirely in JavaScript using Three.js, a popular library for rendering 3D graphics in the browser. The original Descent source code, created by Parallax Software and preserved on GitHub, was adapted to run within this modern web framework. The README notes that the port was built by mrdoob (the creator of Three.js himself) with assistance from Claude, an AI coding tool. The game loads its levels, textures, and other data from the same file formats the original game used. The repository includes the shareware version of Descent's data files, which covers Episode 1, essentially a free demo of the full game. If you own a registered copy of the original Descent, you can swap in your own game files to access the complete experience. This means the project serves both as a convenient way to try a piece of gaming history and as a way to replay the full game in a modern, accessible format. This project is a neat example of how older software can find new life on the web. Browsers have become powerful enough to run a full 3D game from the mid-90s natively, without plugins or installations. By building on Three.js, the port leverages a widely-used, well-maintained web graphics library, making the game accessible to anyone with a modern browser. The README is sparse on implementation details, but the result speaks for itself: a piece of gaming history, playable with a click.

Yoink these prompts

Prompt 1
How do I replace the shareware data files with my own registered copy of Descent to play the full game in three-descent?
Prompt 2
Walk me through how three-descent loads the original Descent level and texture file formats using Three.js.
Prompt 3
What are the controls for navigating the spaceship in three-descent, and how does the six-degrees-of-freedom movement work?
Prompt 4
Show me how to host three-descent on my own website so anyone can play Descent in their browser.

Frequently asked questions

wtf is three-descent?

Play the classic 1995 3D spaceship shooter Descent directly in your web browser. Built with Three.js, it runs the original game data with no plugins or installations required.

What language is three-descent written in?

Mainly JavaScript. The stack also includes JavaScript, Three.js.

Is three-descent actively maintained?

Maintained — commit in last 6 months (last push 2026-06-03).

What license does three-descent use?

No license information is provided in the repository, so default copyright restrictions apply and usage rights are unclear.

How hard is three-descent to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is three-descent for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.