CV / Resume


Shaun Nirenstein's
Curriculum Vitae

Personal Details

Full Name Shaun Nirenstein
Marital Status Married
Nationality South African
U.S. Work Authorization Green Card
E-mail Address shaun AT nirenstein.com

Employment History

Title/Position Software Engineering Manager
Company NVIDIA Corp.
Period October 2008 to present
Skills Employed DirectX Chips Performance Manager
Product Graphics Hardware and Software

Title/Position Senior Software Engineer
Company NVIDIA Corp.
Period October 2004 to October 2008
Skills Employed System level software development, kernel mode development and debugging, problem solving, graphics algorithm development and analysis, software engineering principles, hardware and software performance analysis and optimization
Product Graphics Hardware and Software

Title/Position Researcher and Lead Developer
Company Caves Consortium / University of Cape Town
Period March 2003 to September 2004 (Full time)
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 artists, anthropologists, media experts and psychologists.
Product Virtual environment authoring tool - an intuitive visual language that enables non-technical individuals to describe the interaction between objects within a virtual environment. (see here)

Title/Position Team Leader
Company Electromagnetic Software and Systems
Period 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. (see here)
Product Visualisation postprocessor -- GUI, 2D graphs, 3D visualisation (iso-surfaces, ortho-slices, various vector field models, etc.)

Education

Qualifications :

2003 - PhD in Computer Science
2003 - Certificate: Object Oriented Analysis and Design using UML (Faculty Training Institute)
1998 - 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)

Academic Awards

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

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

Honours:
1998 : - Merit bursary from the FRD

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

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

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

Publications

PhD Dissertation:

Fast and Accurate Visibility Preprocessing
By Shaun Nirenstein, 2003 PDF.
Examination committee:
- Prof. Daniel Cohen-Or (Tel-Aviv University)
- Dr. François Sillion (iMAGIS/ARTIS)
- Prof. Seth Teller (M.I.T.)

Conference/Workshop:

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 (Superseded by SACJ publication)

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. PDF Bibtex

Misc. Academics

I am an active reviewer for SIGGRAPH, Eurographics, The Eurographics Symposium on Rendering, High Performance Graphics, I3D and AFRIGRAPH. I am a member of the AFRIGRAPH program committee.

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 sub-fields in which I have had experience.

Optimization - Graphics and Other
-I have an excellent understanding of the entire "Rendering Machine" from the Application/Game code, to the API Run-time, to the user and kernel drivers, to an in depth understand of how the graphics hardware works at the lowest level.
-I have spent years optimizing driver, application and hardware performance for NVIDIA GPUs.
-I have a lot of experience optimizing for the micro-architecture of various CPUs, and the specifics of the platform architecture.
-I have experience writing optimally performant graphics applications in Direct3D and OpenGL.
Graphics APIs:
-I have used OpenGL extensively from 1996 (on an Indy wokstation) through to 2002. I have been using Direct 3D almost exclusively since then.
-At the higher level I have used Java3D, Open Inventor, NDL's GameBryo/Net-Immerse and RenderWare.
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:
-I have had extensive experience developing performant drivers for 3D graphics chips. I have written a significant amount of kernel and user level driver code for Windows 98, Windows 2000, Windows XP, Windows Vista, and Windows 7.
-A history of assembler implementations of graphics algorithms (before the days of graphics hardware)
Level of Detail Optimisation:
-An implementation of Funkhouser & Sequin's discrete LoD system.
-A novel implementation of Mason & Blake's Hierarchical LoD system. We integrate it with Secchia's "perceptually refined" radiosity solution.
Ray-Tracing:
-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.
-I believe that ray-tracing should be the first thing that is tought in any computer graphics class since it provides direct access to the fundamentals of rendering with no more "goo" than a surface to write to.
Visibility Culling:
-The main focus of my MSc. and PhD.
-I am familiar with all the literature on this subject.
Radiosity:
-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.
Visualisation:
-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 visualisations of 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. (see here)

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 AcceleratedRay 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 were published in the proceedings of AFRIGRAPH 2003.
-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 several 2nd year projects. 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 conservative “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), C, C#, Java, Pascal, Python, Scheme, TCL/TK, Assembler (MIPS and 80x86), Matlab, Maple, BASIC.

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/Vista/Win7
DOS

Interests

My primary academic interests are interactive computer graphics and photo-realistic rendering. 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 running, reading, music and watching various odd films. I also thoroughly enjoy retro-gaming.




This site is powered by e107, which is released under the terms of the GNU GPL License. This site uses the Techlux theme.