lifauth: Light Field Authoring

The lifauth toolkit will allow you to generate light fields from an array of .rgb images. Currently, it is only supported on the SGI platform.

The 3 main steps to authoring a lightfield are:

Choosing a light slab configuration

We have several sample configurations you can choose from. The configuration is specified with a .lid (light field description) file. This file specifies the location of the slab(s) in world coordinates, and lists where the .rgb files are located on the filesystem.

You can click on the links to view the lid files, and shift-click on the links to download the files.

dragon8.lid This is the lid file that was used to generate the dragon8 light field. It has a single slab. The uv plane is at infinity (w=0), so that each source image is an orthographic projection (i.e. all rays are parallel for a given u and v).

sodahall.lid This is the lid file that was used to generate a 4-slab 360-degree view of the inside of a corridor in Soda Hall. In the resulting light field, You can turn all the way around, but you can't look up or down very much (since it's missing the top and bottom slabs). The st plane is at infinity, so that each source image has a fixed field of view, 90 degrees. This is an example of an outward-looking light field.

unit8.lid This is a generic lid file for generating a 360-degree view of an object that fits in a unit cube (-0.5 to 0.5). Both the uv and st planes have w=1, so neither plane is at infinity. (Instead, each image will be a sheared perspective projection.) Two more slabs could be added (top and bottom) to make this lightfield cover the object from every angle.

Generating an array of .rgb images

We have assembled a set of tools called authpack to help generate an array of .rgb images, given a .lid file. It contains an executable and C functions to retrieve data from a .lid file. It also contains scripts that take a .lid file and a renderman .rib model and generate a light field. If you have a renderman license on your system, you can just run the scripts and generate a small sample light field.

Download authpack.tar.gz

The two main tools of authpack are:

For more information about the contents of the authpack toolkit, see its README.authpack .

Compressing everything into a .lif file

After you've finished the last two steps, you will have the raw data in a format that lifview can display. However, most computers will not have adequate memory to display a raw light field. The lifauth program allows you to compress the entire light field using vector-quantization, and generate a single .lif file.

To download lifauth, hold down the shift key and click on the link below:

Download lifauth

You can run lifauth without any arguments to get its usage summary:

lifauth [options] <infield> <outfield.lif>


    -v                      Verbose mode on, prints progress.

    -vq                     Use vector-quantization compression.
                            This is the default. 

    -novq                   Don't use vector-quantization compression

    -vqtrain <fraction>     Specify fraction of lightfield to be used
                            as a training set.  The fraction should be
                            between 0 and 1.  Default is 0.04.

    -vqtile <u> <v> <s> <t> Specify the size of each vq tile.  Each
                            of the four numbers should be a fairly
                            small power of 2.  Default is 2 2 2 2.

    -vqcode <size>          Specify the number of tiles in the
                            codebook.  Depending on the tile size,
                            good numbers would be between 256 and
                            65536.  Default is 16384.

    <infield>               Should be either a .lid file
                            (LIght field Description file), which
                            specifies a set of .rgb files, or a .lif
                            file, which is the native light field

    <outfield.lif>          The output file.
The default settings were used for most of the sample light fields. Compression times can range from several minutes to several hours, depending on the size of the data set and the percentage of data that is used in training. It is wise to choose a training set size that will fit in resident memory on your system.

Distribution notice

Copyright © 1996 The Board of Trustees of The Leland Stanford Junior University. All rights reserved.

Except for commercial resale, lease, license or other commercial transactions, permission is hereby given to use, copy, and/or modify this software, provided that the above copyright notice and this permission notice appear in all copies of this software. No part of this software or any derivatives thereof may be used in the production of computer models for resale or for use in a commercial product.

This software is provided "as is" and without warranty of any kind, express, implied or otherwise, including without limitation, any warranty of merchantability or fitness for a particular purpose.

If you have any questions, problems, concerns, or suggestions about the lightpack software, send mail to:

If you would like to receive announcements about future releases, send mail to:
with the message body:
subscribe lightpack-announce

back to the LightPack home page.