Jacob Zachariah
abkpc6@r.postjobfree.com
http://www.jacobzach.com/0407.html
Interests: Embedded systems. Video/streaming technologies, 3D Graphics,
Consumer, Medical devices. Security systems. Computer Vision.
02/10-Present Part time iPhone projects Las
Vegas, NV
Wrote a TightVNC Client application for the iPhone, using OpenGL-ES, to
deliver near real-time display over WiFi connectivity. The intent is to
allow watching video from home security cameras, on an iPhone.
Working on an iPhone project involving graphics effects like user
annotations using paintbrush, color palette, on camera images.
04/09 - 03/10 Austin GeoModeling Las Vegas,
NV
Worked on various enhancements to an Oil & Gas exploration 3D data
interpretation application using C/C++/Qt/X-Motif on CentOS Linux. Worked
on 3d surface modeling, filtering based on data & fault surfaces. Added
smooth display of mesh,contour overlays on 3d intersecting surfaces using
GL stenciling. Added calculations of detail values from coarse well path,
surface triangle data to allow accurate value displays tied to mouse
movement. Improved application performance wherever possible by
streamlining data loading, memory usage & rendering of large well datasets.
Ported drawing of several scene elements to using VBOs & implemented color
picking. Worked on GUI using X-Motif/Qt.
06/08 - 04/09 WMS Gaming
Las Vegas, NV
Worked on security & software authentication features for an embedded Linux
platform. Led a project to add support in the Operating System for a vendor
USB Hardware Key & worked with Israeli vendor to resolve various
development & run-time, system level issues on the platform.
Devised an in-house driver installer(rpm) using ATI drivers, for enabling
3d hardware acceleration within Fedora & CentOS Linux sandbox'ed
development environments. Worked with developers in various international
locations in customizing and utilizing latest graphics cards/drivers on
their development boxes. Added various OS functionalities for video,
solving field issues, daily troubleshooting various parts of the OS
(emphasis on 3d/video) & performance improvements.
10/07 - 05/08 AMD/ATI Santa Clara,
CA
Worked on the OpenGL driver (windows) & new ASIC introduction. Work
included programming hardware changes at the hardware compatibility layer
for new ASICs, debugging hangs, screen corruptions, improving test
programs, performance analysis, regression testing.
12/06- 10/07 Austin GeoModeling Austin, TX
Worked on a 3D geological interpretation product using C, OpenGL,X-Motif on
Linux. Added many product features, fixes requested by clients
(BP,Chevron), such as displaying overlays like culture, faults, user
annotations, seismic overlays, images etc, on 3d surfaces in different GL
windows using FBOs, multitexturing, VARs, 3d textures, context sharing.
Added mouse dragging of an object through 3d space, along an arbitrary
path(e.g deviated well path). Added 3d, 2d compasses to show North; and
colorbar enhancements. Improved the Postscript hardcopy capability by
adding the ability to layer the gl drawings and images using the glpr
library. Sped up drawing graphics primitives (e.g circles) by using
optimized algorithms. Added 3d interpretation capability, allowing
geologists to click on any 3d object & use that point in surface
construction. Added support for the 'SpaceNavigator' 3d tracking usb device
in the product. Retooled & improved many capabilities like contouring &
surface overlays. Added multi-stage filtering capability for 3d surfaces,
allowing users to apply multiple data filters on surfaces. Used Normal
Mapping for displaying high-res surface details on lower resolution
surfaces/geometry. Added feature to generate mpeg screen captures.
Independent project: Implemented a Volume Rendering technique, based on
'Volume Rendering Techniques'-Ikits et al, GPU Gems, 2004, NVIDIA. Devised
a more efficient algorithm from said paper, to generate view aligned proxy
geometry (slice planes), which does not require sorting or intersecting all
cube edges, per slice plane.
9/2003 - 12/06. Sierra Design Group/Bally Technologies
Las Vegas, NV
Worked on an embedded Linux OS built on RedHat 7.3 for video slot
machines. Work included fixing bugs, adding features on various aspects of
the OS, like peripherals (Printers, Bill Validators), host communications,
GUI aspects, various functionalities. Had among the highest bug-fixing
rates while tasked to bug fixing during first 6 months. E.g. Fixed a
critical, intermittent, event-out-of-order field issue in a kernel convert
IPC module. Helped develop an OpenGL based video server for displaying
games. Worked on a tool to.convert mng animations to a proprietary delta
compressed format, for faster playback & lower memory requirements.
Developed a threaded video streaming capability, for streaming the delta-
compressed animations directly off the compact flash instead of loading
them into limited system memory. Used nVidia extensions for the best
performance while updating textures. Did investigations into OpenGL
extensions and shaders (Cg, glsl) and developed prototypes. Worked on
packaging a minimal XFree86 system in the OS. Involved with testing new
hardware, ETX modules & graphics cards from vendors. Performed testing &
benchmarking of OpenGL features on different hardware, graphics cards and
drivers, in the OS.
Was responsible for maintenance of the video server (direct drawing to the
framebuffer) in the OS. Extended it to efficiently draw to a GL
texture(using an nv-gl extension) allowing it to be used for rotated
monitors/displays. Wrote tools to detect number of connected monitors to
PCI graphics card at OS boot, read monitor EDID information, and configure
the video server to draw on a variety of display configurations including
widescreen, multi headed/resolution, rotated displays using xfree86, nVidia
drivers; which were included in patent filings for electronic gaming
machines.
Developed an embedded Browser application system for the OS, on a dual
screen hardware platform. Wrote a browser server to accept requests from
clients to manage browser windows. Added extensions to the browser library
to run Javascript code, send synthetic mouse events, error sniffing and
other extensions. Prototyping included web technologies like, Ajax, PHP,
MySQL, GnuPlot, Javascript, Apache, CGI scripts, and sockets. Added support
for true type font handling in the OS. Investigated and fixed various X and
OpenGL issues. Built the gcc2.96 compiled OS with gcc3.2, fixing
errors/warnings. Worked with USB touchscreens and wrote a USB device driver
to send touch events to the browser windows.
11/2000 - 10/2001 iM Networks Mountain
View, CA
Designed, developed and maintained a Windows jukebox application ('iM
Jukebox') that allowed for the creation of a database of MP3 playlists
(new, or imported from other players like Winamp, Musicmatch, Real etc)
that reside on a computer network, and were streamed to iM tuning clients,
like the Philips FW-i1000 home stereo system. The application included a
multithreaded HTTP server that streamed out local MP3 files across a
network to an iM Tuning client like the Philips FW-i1000. Ported a portion
of the application to Java.
Worked on a Windows product ('iM Radio Tuner') that allowed a listener with
a broadband connection to tune into hundreds of preselected Internet radio
stations from around the world through the iM Tuning service. Implemented
features like offline operation, playlist readers, and maintenance of the
product.
3/99 - 9/2000 MuSE Technologies(a Sandia Labs spinoff)
Albuquerque, NM
Worked on a Finite Element Analysis library; added a Displacement
Mapping/Surface morphing capability for FEA models, using data variables
like Pressure, Temperature to generate displacements for the nodes of the
model in a simulation. This technique was conceived for examination of FEA
data on tire models & was requested by Goodyear. Used in applications
developed for reading CMold, Abaqus FEA datasets. Added new features and
fixed several issues.
Worked on a Naval Exercise Analysis(MEXAN) system for the U.S Navy, that
allowed for the re-creation and simulation of Naval exercises in the MuSE
4D environment. Worked on filtering, LOD models, GUI and coloring various
contacts between the units. Added 2d/XY plots for the units (e.g. depth,
speed, relative bearing etc) displayed as sidewall instruments.
Worked on an app ('Tire Contact Analysis') for Goodyear Tire and Rubber to
visualize in 4D using OpenGL, Fl-Tk, the laser mapping data of tire treads.
It involved reading sequences of tread mapping data over time and
visualizing them in the MuSE 4D environment with dynamic color mapping,
displaying rib scan, cross-scan data in 2D plots, and other features to
assist tire engineers in understanding the wear data better and spotting
anomalies, irregular wear in tire treads.
Helped develop an Air Traffic Control prototype application that displayed
2 hours of FAA flight data over the continental US and fusing data from
different sources and bringing out patterns, anomalies in the data.
Features included: Proximity detection of flights with airports and other
flights, flight altitude, contrails, status, waypoint data, display of ATC
centers, sectors & modules using altitude thresholding & colorbar mapping.
Integrated WSI weather data like lightning strikes, Jetstreams & Echo tops.
Developed a prototype integrating the VTree (by CG2 Inc) scene graph with
the MuSE 4D environment, allowing developers using the VTree toolkit to
integrate their applications with the MuSE environment. Worked on reading
tire design, test & performance data, output from a Goodyear database
application into Excel spreadsheets using VBA; & designing ways using 3D
plots, volumes, etc. to represent large quantities of data in an intuitive
manner in a Muse application.
Worked on representing the earth's atmosphere using an FEA sphere in a
prototype app, that was used to show how solar flares affect the earth's
atmosphere. The MSIS (Mass Spectrometer, Incoherent Scatter) volumetric
data was mapped as nodal data at latitude, longitude locations on the FEA
sphere model and the FEA sphere would display the color variations, and
also 'morph' based on the data (using the surface morphing technique
described above).
Worked on product development; bug fixing; making apps, multi-pipe, shared
environment compliant and improving performance. Provided trade show
support. (SIGGRAPH99, ATCA99).
9/98 - 1/99 Seismic Micro Technology Houston, TX
[Contracted with SMT through IIS-XOX since early '97]
Designed and developed a 3D Seismic Visualization product using MFC,
OpenInventor, OpenGL. Implemented seismic sections, arbitrary cuts, ribbon
cuts, hinged cuts, chair cuts through the volume data using Textured
planes. Wrote surface tesselators for constructing 3d Horizon, Fault
surfaces from arbitrary points. Surfaces would update in 3d based on user
edits on a 2d grid. Added display of culture (land characteristics) data at
user definable sub surface depths. Added cursor tracking, displaying model
coordinates, 3d picking and subvolume clipping. Enhanced the system from
single 3D Line/Trace survey to an XY system with multiple 3D & 2D surveys
capability. Displaying orientation of the model through a 3d compass. Added
capability to selectively render volume data using volume bitmasks. Added
Colorbar manipulators to interactively view the characteristics of
surfaces, seismic sections, by selecting and manipulating the colors on the
high, low amplitudes. Moving a user adjustable cube through the seismic
volume & seeing the seismic data on the cube faces. Provided trade show
support. (SEG, AAPG).
Worked on adding enhancements to a Volume Rendering library by VoluMetrix
Inc. Fixed a critical volume rendering issue (Loss of image fidelity due to
1voxel:1pixel mapping) when zooming into a 3D scene.
Other Projects
Wrote a 2d to 3d model generation sweep tool (win32) with Gouraud, ZBuffer
rendering. Wrote several graphics animation, rendering applets in Java.
Wrote shortest route/pathfinding programs using A-Star, Dijkstra's
algorithms.
Education:
2003 Cal State University - Stanislaus [GPA 3.68].
2002: Cal State University - Hayward. [GPA 3.86]
2001-Oct: GRE (Verb:580 Quan:780 Anly:760)
1995 - B.S (ComputerScience), Pune University.
UnderGraduate Project : Natural Phenomena Simulation
This project was based on the paper 'A Collision Based model of Spiral
Phyllotaxis' - SIGGRAPH Computer graphics -July92 The project dealt with
simulating Natural Phenomena like Mountains, Trees, Flowers etc. using
Advanced Geometric Modeling techniques like Procedural Modeling, Fractal
Modeling, Grammar based modeling to generate the wire frame 3d models which
would be later rendered by a renderer such as 3D-Studio.
Submitted & accepted for the 'Slides of Student Work' section at SIGGRAPH
97.
Volunteered at a Molecular Biology lab at CSUH as part of independent study
& also wrote an application using VC++/MFC to find protein/nucleotide
sequences in any selected genome database. Worked with a microbiology
professor/researcher at CSUH, and wrote 3d visualization prototypes for
visualizing data. Created a graphical 4d simulation of bacterial growth of
different strains of bacteria, which she used at her seminars.
Programming C,C++, ObjectiveC, MFC, VisualBasic, Java, Fl/Tk, X-Motif,
Sockets
Operating Windows, Linux, MacOS, SGI-IRIX
systems
Development VC++, SlickEdit, Xcode, vi, gdb/ddd, Purify, WinDBG,
tools valgrind, kcachegrind, ViewVC,
Graphics OpenGL, OpenInventor, glsl
Libraries mozilla, XFree86, directfb, glpr(GL printing), gdk/gtk,
debugged /used svgalib, libusb
Database MySQL, MS-Access
Web PHP, Javascript, Apache
technologies
Source Control CVS, Perforce, SourceSafe