No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is an asset reference browser for the game of Riven. The purpose of this application is to easily browse the images and movies from the outstanding game of Riven.

Note: This repository does not, and never will, contain actual Riven assets. To run this browser one must first buy the DVD or CD, and extract the game assets.


Web app prerequisites

For hosting the reference browser, you will need both Python 2 and Python 3 dependencies. This is because the program to make the database ( is written in Python3, but the web application is written in Python2.

# python 2 dependencies:
pip install flask
pip install flask-sqlalchemy
pip install flask-login
pip install flask-wtf

# python 3 dependencies:
pip3 install Pillow
pip3 install graphviz

Database prerequisites

For creating the database:

  1. Install sqlite3.
  2. Install ffmpeg.
  3. Install ImageMagick.
  4. Install graphviz.

Creating the database.

  1. Put the extracted game data in the browser/protected/DVD folder.
  2. Run make. If you don't have make installed then ./ or python3

This takes a while (> 10 minutes on most systems), mostly because the movie transcoding process is CPU intensive. When finished the database ("riven.sqlite") will exist as well as many new images in the protected folder. To delete these newly created images just:

make cleanall

Running the Web Application.

Step 1: App configuration

The reference browser first reads it's configuration data from This configuration is then overridden by instance/ Since instance/ is not under version control, it should be the one that you update.

The following keys must be specified:

  1. SQLALCHEMY_DATABASE_URI (path should follow the form sqlite:////absolute/path/to/riven.sqlite. Note the four [4] slashes in the scheme specifier.)
  2. SECRET_KEY (may be any string, but a cryptographically random value is recommended for deployment)

For more information see Flask Configuration.

One password is used for authentication, and it is read from instance/password.txt.

Note: This application does not currently support multiple users, and the one hard-coded user "admin" has a hard-coded test password specified above.

Step 2: Running Flask for development

For development purposes, the app can be run as so: