Shaun Nirenstein's

Curriculum Vitae

You can find my new Home Page and CV at

Personal Details

Full Name Shaun Nirenstein
Marital Status Married
Nationality South African
E-mail Address shaun AT

Work Experience
(For teaching related work, see teaching experience)

Title/Position 3D System Software Engineer
Company NVidia Corp. (web page)
Employment History October 2004 to present (Full time)
Skills Employed System level software development, problem solving, graphics algorithm development/analysis, software engineering principles, hardware and software performance analysis and optimization


Title/Position Researcher and Team Leader
Company Caves Consortium (web page) / University of Cape Town (web page)
Employment History March 2003 to September 2004 (Full time)
Team Dennis Burford - Software Engineer Karl Lilje - Software Engineer / 3D Modeller
Andrew Stow - Software Engineer Jakkaphan Tangkuampian - Software Engineer
Eric Savage - Software Test Engineer Pieter Steyn - 3D Modeller
Skills Employed

C++, Python, Qt, Visual Studio development, Game-engine API programming and tools (NDL's Gamebryo/Net-immerse), OO Design and Team/Project Management.

The project is highly multidisciplinary, and has required me to work closely with 3D modellers, fine artistis, anthropologists, media experts and psychologists.


Virtual environment authoring tool - an intuitive visual language for describing the interaction of objects within a virtual environment by non-technical individuals.

(Click for video +- 55mb)



Team Leader


Electromagnetic Software and Systems (web page)

Employment History

June 2000 to October 2002 inclusive (Part Time)
November 2002 to February 2003 inclusive (Full time)

Skills Employed

C++, Java, Qt, Hoops3D, multi-platform development, portable software, implementing visualisation algorithms, software engineering principles


Visualisation postprocessor -- GUI, 2D graphs, 3D visualisation (iso-surfaces, ortho-slices, various vector field models, etc.)

Screen Shot


 (Click for full resolution images)



Qualifications   :

2003 - PhD in Computer Science
- Certificate: Object Oriented Analysis and Design using UML (Faculty Training Institute)
- BSc Honours in Computer Science (First Class)
1997 - BSc in Computer Science and Pure Mathematics
1994 - Senior Certificate (distinctions for Mathematics and Computer Studies)

University: University of Cape Town (UCT) (1995 to 2003)


2002 : - Scarce Skills Scholarship from the National Research Fund (NRF)
2002 : - Merit bursary from the National Research Fund (NRF)
2001 : - Merit bursary from the National Research Fund (NRF)

2000 : - Merit bursary from the National Research Fund (NRF)
1999 : - Merit bursary from the Foundation of Research and Development(FRD)

1998 : - Merit bursary from the FRD

1997 : - Deans Merit List
1995 : - Merit scholarship from UCT

High School:
1992 to 1994 : - Top student for Computer Studies, Mathematics & Physiology

1994 : - Second place for Dexterity '94 Graphics Programming competition.
You can find Kataklism here.
1997 : - Appreciation award from the International Olympiad in Informatics committee


You can find the PDF of my thesis here (15mb).
Examination committee:
- Assoc. Prof. Daniel Cohen-Or (Tel-Aviv University)
- Dr. François Sillion (iMAGIS)
- Prof. Seth Teller (M.I.T.)


Denis Haumont, Otso Mäkinen and Shaun Nirenstein,
A low Dimensional Framework for Exact Polygon-to-Polygon Occlusion Queries,
Rendering Techniques 2005: Proceedings of the 16th Eurographics Symposium on Rendering
211-222, Konstanz, Germany, June 2005. PDF Bibtex

Shaun Nirenstein and Edwin Blake,
Hardware Accelerated Aggressive Visibility Preprocessing using Adaptive Sampling,
Rendering Techniques 2004: Proceedings of the 15th Eurographics Symposium on Rendering
207- 216, Norrköping, Sweden, June 2004. PDF Bibtex

Adrian Sharpe, Matthew Hampton, Shaun Nirenstein, James Gain and Edwin Blake,
Accelerating Ray Shooting Through Aggressive 5D Visibility Pre-processing,
Afrigraph: Proceedings of the 2nd international conference on Computer graphics, virtual reality,
visualisation and interaction in Africa
. pg. 95 - 100, 2003. PDF Bibtex

Shaun Nirenstein, Edwin Blake and James Gain,
Exact From Region Visibility Culling,
Rendering Techniques 2002: Proceedings of the 13th Eurographics Workshop on Rendering
Springer-Verlag, 191 - 202, Pisa, Italy 2002. PDF Bibtex

Shaun Nirenstein, Edwin Blake, Simon Winberg and Ashton Mason,
Hierarchical Level of Detail Optimisation for Constant Framerate Rendering of Radiosity Scenes,
Proceedings of SAICSIT 2001

Refereed Journal:

Shaun Nirenstein, Edwin Blake, Simon Winberg and Ashton Mason,
Hierarchical Level of Detail Optimisation for Constant Framerate Rendering of Radiosity Scenes,
South African Computer Journal,
No. 29, pg. 32 - 40, November 29 - December 2002. Bibtex

Misc. Academics

Paper or course reviewer:

- Eurographics Symposium on Rendering 2003
- Eurographics 2003
- 11th Eurographics Workshop on Rendering (2000)

Program Committee


Teaching Experience

2002 :

- I have given several lectures for the graphics component for the University
of Cape Town's Virtual Reality course.
- I have proposed and supervised an honours (4th year) project.  The topic
proposed is Aggressive 5D Visibility Preprocessing for Accelerated
Ray Shooting.  The central idea is to perform heavy pre-processing
(heavier, than the usual spatial partitioning) in order to obtain
interactive ray-tracing on a single workstation. The project was
very successful, and the results are to be published in the
proceedings of AFRIGRAPH 2003. You can find the project homepage here.
- I proposed and supervised a 2nd year project.  The task is to write an
elementary modeller, material editor and ray-tracer (groups of 2 or 3).

2001 :

- I supervised an honours project on distributed visibility
culling.  The project home page may be found here.
- Invited lecture on Visibility Culling (my field of research) to the
honours advanced graphics class.
- I proposed and supervised a 2nd year project.  The task was to write
a simple floor-plan editor.  The floor-plan must then be extruded into
3D for walkthrough purposes.  Finally, the core concept of the project
was to use plane visibility algorithms (i.e. from computational geometry:
it was necessary to compute the visibility polygon in near-optimal time) to
compute which parts of the scene are visible from the viewer.  Additional
credit was given for those who implemented point light sources and shadows.
Some students preprocessed the scene with a floor plan triangulation.  The
visible parts of the geometry was computed for each triangle.

2000 :

- Tutored/lectured for Marang Voyage 5000 Project
- Teaching Assistant/Assistant Lecturer for ICG (Java and C++)

1999 :

- Tutored/lectured for Marang Voyage 5000 Project (an outreach program,
sponsored by IBM & Old Mutual)
- Teaching Assistant/Assistant Lecturer for Interactive Computer
Graphics (ICG) (3rd year and Honours course) (Involves teaching Java,
Java3D and Visual C++)
- Assisted with Honours Visualization course (C++, TCL/TK)
- Various lectures in Advanced Graphics
- Supervised 8 2nd year Computer Science projects (C++).  The set task was
to implement a “Strong Occluder” based visibility preprocessor.

1998 :

- Teaching Assistant/Assistant Lecturer for ICG (Java and C++)
- Various lectures on Wavelet theory
- Upgraded all 3rd year graphics course practicals from C
to Java (Vac. Job).  This involved writing model solutions
and adequately documented 'skeleton' code from which the
practicals are to be completed. I added a city fly through
practical based on a camera path defined by Bezier & B-Spline
curves. I also included a Java3D implementation of the
Mine Sweeper game.  The other practicals consisted of
classical matrix manipulation and an implementation of
Gouraud and Phong shading, using the Phong lighting model.

1997 :

- Tutor for 1st year computer science

1995 - 2002 :

Marker/Question coordinator for the National
Computer Olympiad (and in '97 for the International Olympiad)
I have been a member of MANCO, the MANagement Committee for South
Africa's national computer Olympiad since 2001.

Known Programming Languages

C++ (extensive experience - both academic and professional), Java, C, Pascal,
Python, Scheme, TCL/TK, Assembler (MIPS and 80x86), Matlab, Maple, Basic.

I have worked with C++, developing a multi-platform Visualization
interface using Qt as a GUI tool kit, GNU C++ and Visual C++. For more details
see work experience.  I am very comfortable with the object model and consider
OO design as one of my skills.

Computer Graphics Experience

My computer graphics experience has been extensive, and I consider this
to be my field of expertise.  Below is a list of graphics fields in which I
have had experience.

Graphics APIs
    - I have used OpenGL extensively from 1996 (on an Indy wokstation) through

      to 2002. I have been using Direct 3D almost exclusively for the last few years

Mathematical Aspects of Computer Graphics
    - I have a strong interest in the application of mathematical concepts
      to computer graphics.  My PhD work includes a great deal of work
      in both computational geometry and  projective geometry.

Low level graphics programming
    - A history of assembler implementations of
      various algorithms and techniques.  This was mainly
      from back when hand coded assembler could (easily)
      beat a compiler targeted at particular hardware.
    - I am also familiar with driver development

Level of Detail Optimisation
    - An implementation of Funkhouser & Sequin's discrete LoD system.

Hierarchical Level of Detail Optimization
    - Novel implementation of Mason & Blake's
      HLoD system. We integrate it with Secchia's
      Perceptually refined radiosity solution.

    - Performance driven ray-tracing. I am familiar with most acceleration techniques.
      I have written a simple real-time ray tracer (web page).
    - I also have a strong interest in photo-realistic rendering, and have developed
      a simple stratified, importance sampling monte-carlo ray-tracer (web page).
     - I am also very familiar with the GPU ray-tracing literature.

Visibility Culling
    - The main focus of my MSc. and PhD. 
    - I am familiar with all the literature on this subject.

    - Performance driven radiosity.  I am particularly interested
      in optimising for incremental changes to the scene.

Mesh Compression/Optimisation
    - Although I am not an expert in this field, I am
      interested in continuous level of detail and multi-resolution
      model representations.

Exploitation of Hardware
    - I believe that many computationally expensive problems may be solved
      more efficiently using (or mis-using) hardware.  To this end I have involved myself
      in various hardware related issues, such as latency caused by reading
      from the frame buffer, and of course: the maximisation of triangle througput.
      This usually involves the usage of API extensions
      (e.g., NVidia's OpenGL extensions ) and optimizations using extended
      instruction  sets ( 3dnow! and SSE/SSE2 ).

    - I am interested in the visualisation of data that does not have an
      obvious visual manifestation.  I have been involved in industrial projects
      to visualise electric near-fields, far-fields, currents, charges, etc.
      I have an interest in rapid iso-surface generation.  I have also worked
      on visualising weather vortices and antrhopological data during my
      honours year.

Graphical API paradigms
    - As an experienced user of various imperative APIs (Direct3D, OpenGL) and declarative
      APIs  (HOOPS 3D, Open Inventor, Java3D), I find the engineering paradigms used for
      their design to be most interesting.  In particular I am interested in alternative
      methodologies for expressing graphical information programmatically.

Virtual Reality Authoring
    - I have developed software for creating virtual environments.  The main focus was
      to develop an interface, that would empower "non-programmer" type users to
      develop their own virtual environments. 

Undergraduate Courses

Computer Science (major)
Pure Maths (major)
Applied Maths I and II
Psychology I
Philosophy I

Operating System Experience
(I have development experience on all these platforms)

Unix based (IRIX, Linux, FreeBSD, SCO Unix, System V, Solaris, HPUX 10 and 11)
Windows 95/98/NT/2000/XP


My primary academic interests are interactive computer graphics
and photo-realistic rendering.  My masters thesis is/was a proposal and
analysis of a new visibility preprocessing system.  My PhD thesis
presents what is regarded as the first tractable solution to the
Exact From Region Visibility problem.

Other interests include compiler and language functionality and design,
geometric study (computational geometry, projective geometry and
combinatorial geometry), topology and wavelets.

My personal interests include table tennis, gym, reading,
music and watching various odd films. I also thoroughly enjoy retro-gaming.

Article link