Skip to content
Raytracing for professional optical design
C++ Makefile Yacc Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Skewray Logo

Build Status Code Coverage


Skewray is a standalone program for modeling and design of optical systems. The intent is to create a platform for trying out innovations in optical raytracing.

Target Users

The target users are scientists, optical engineers, and students who are comfortable using a high-level programming language (like MATLAB).

If you are looking for computer graphics rendering, this isn't it.


The following are some of the milestones, either implemented or planned:

Major Task Status
open source pre-existing code under GPL 3 done
create high-level language for describing physical models done
internationalization - native language variable names and comments done
overloaded derivatives done
arbitrary coordinate systems and transformations done
arbitrary polynomial surfaces done
sequential and non-sequential ray tracing in progress
tracing with guaranteed tolerance in progress
tracking of all apertures not started
requirement satisfaction, rather than optimization not started

A detailed description of the roadmap can be found in the roadmap.

Manual and Examples

The Skewray User Manual is informative but not necessarily up to date, since the language syntax is still changing. However, the .sky test files in Skewray Test Files are educational and always up to date.

Installation and Build

Skewray has so far only been built and tested on Ubuntu and Debian. Steps are:

  1. Unpack zip archive
  2. type 'make configure'
  3. type 'make'

The use of AutoTools is a work in progress.

Required external package list:

  • g++ - compiler
  • make - build system
  • flex - lexical analyzer
  • bison - syntax generator

Optional external package list:

  • openscad - CAD output


© GPLv3

You can’t perform that action at this time.