Skip Navigation Links
Home
CyberTrackerExpand CyberTracker
Portfolio
Contact

Portfolio

For a resumé, send mail to Justin Steventon.

CyberTracker 3 (2003-2006)


Figure: Desktop: the Sequence Designer.


Figure: Desktop: the report and query system.


Figure: Mobile: a simple screen with radio list.


Figure: Mobile: a screen with scrollable high-resolution map. 

Role

Architect, developer and technical support.

Overview

CyberTracker is the most recent version of the popular data capture software product used widely within Environmental Conservation, Wildlife Biology and Disaster Relief. It is freely available for download from here. CyberTracker distinguishes itself from other data capture products in 4 main ways:

  1. No knowledge of programming or databases is required
  2. The mobile application is very easy to use and can be customized for use by illiterate and low-literate people
  3. Analysis, reporting, visualization and export are included
  4. CyberTracker is free

The system is a 2-tier application: desktop and mobile. The desktop application runs on Microsoft Windows platforms and the mobile component runs on PalmOS (3.0 and later) and Windows Mobile devices (PocketPC 2002 and later). The desktop application exists to customize the mobile application and to analyze any data that it collects.

CyberTracker also contains several features useful for digital field guides, for example the playback of MP3 sounds, the display of images and the use of taxonomic keys.

CyberTracker was commissioned by ECOFAC and is used widely throughout the environmental conservation community.

Technical Overview

The desktop application is written in Borland Delphi and consists of roughly 120,000 lines of code. Undo/Redo supports virtually every operation, so users can try out the software without fear. The underlying database is a Microsoft Access MDB file. Projects can be exported in a compressed format. GIS support is via a 3rd party component.

The mobile application is written in C++ with layers for Metrowerks Codewarrior (for PalmOS) and Embedded Visual C++ (for Windows Mobile). The same code is cross-compiled for use in the desktop application and the mobile application. Since it is specifically designed for CyberTracker, it is extremely fast.

The mobile source code is designed to be freely available (under MPL) because the client itself is highly customizable. 

Check out my CyberTracker page for more information.

Microsoft (1998-2003)

Role

Developer and Development lead.

Overview

During my 5+ years at Microsoft, I worked entirely within the Windows division. I began on the DirectDraw team in 1998 and moved to Application Compatibility in 2000.  

For a resumé that includes details about my work during this time, send mail to Justin.

Compu-VIEW (1997)


Figure: Fitting frames to a client.


Figure: After modification


Figure: Lens configuration

Role

Development manager.

Overview

Compu-VIEW is a program designed primarily for opticians and optometrists, but is suitable for anybody dealing in the dispensing of optical prescriptions, the selling of spectacle frames or cosmetic contact lenses. It was commissioned in early 1997 by an optician. It contains a database of high-resolution frames which can be fitted perfectly to a captured persons face (via scaling/rotation). The application also supports colored lenses and cosmetic contact lenses.

The advantage of this system is that stores don't need to keep stock of every possible frame that their suppliers produce, but their customers are still provided with a full selection. 

Technical Overview

The entire application is written in Delphi 2.0 for Windows 95. However, several core components were written in x86 assembler for performance reasons.

Since frames are often very thin, it was important to capture them with an alpha channel which required a uniquely constructed apparatus. 

Game Tracker v1+2 (1993-2002)


Figure: desktop application - complex reports can be generated from the captured data.


Figure: Field ranger with Apple Newton MessagePad


Figure: User interface on the field computer

Role

Developer.

Overview

Originally entitled ‘Field Computers for Animal Trackers’, this project was commissioned by Professor Edwin Blake (of the University of Cape Town) and Louis Liebenberg. The original concept was to produce a field computer interface that could be used by illiterate animal trackers. The field computer is linked to a GPS which gives position information. Data gathered is then transferred to a base computer for permanent storage, analysis and visualisation. After prototype development, it became clear that a need exists for a generic field computer system that could be integrated with commercial GIS applications. The desktop system is written as a Windows 95 program which configures a field user interface according to what information needs to be recorded. The project required versatility in terms of technical capability and systems integration. In addition, the success of the project has been given much publicity in both press releases and television broadcasts. 

Technical Overview

The base system was coded in Borland Delphi 2.0. The field computer is an Apple Newton MessagePad. The GPS integrates via standard serial NMEA messages. The base system manages an open ended database capable of capturing virtually any kind of data. The mobile interface is extensible. 

CEVC (1993-1998)


Figure: Editing a new style.


Figure: Final touch-up and save


Figure: Sample output as printed by a photo printer

Role

Developer.

Overview

CEVC was commissioned in early 1993 by Tom Ketel, owner of a successful hairdressing salon. The idea is to capture a clients face and change both the background and hairstyle to reflect a new look. Unlike other similar applications, this system is designed to be used by a hairdresser in conjunction with a client. The process involves the following:

  • Capture a client with a video camera using a frame-grabber.
  • Replace the existing background with a custom design.
  • Select a new style from a library and fit it using any of the available tools. In addition, styles can be altered to appear in the preferred colour.
  • Touch-up the final image using photo-editing brushes.

The hardware is mounted in a specifically designed cabinet, with a camera fixed on a motorised platform behind a two-way mirror. The unit forms a completely automated system for all kinds of salon consultation. The programming required detailed knowledge of frame-grabbing, digital image processing, color theory and much of Windows internal workings. Development took place over a period of 18 months and the system was reputed to be the most advanced of its kind.

Technical Overview

The user interface is written in Visual Basic 4.0 for Windows 3.11. The core is coded as a Windows Dynamic Link Library (DLL) with assembler forming the basis of most routines. The efficiency of the 32 bit assembler used, allowed real-time usage on a 486DX2-66, despite the high resolution processing involved.

3D Graphics Demos (1993)

 

Figure: 4 different demos showing serveral 3D visual effects.

Role

Co-developer.

Overview

The graphics demonstrations were originally experimental techniques designed to push the limits of direct hardware programming. However, having released several into the public domain, additional effects were commissioned by:

  • 1992 Cape Computer Fair
  • Vision Software
  • Mustek Electronics

Most sequences are embedded with a scanned company logo, but in the case of Vision Software, screens and animations were extracted from existing software.

Technical Overview

The demonstrations are written largely in mode X, a hybrid graphics mode which allows paging and access to all of the VGA memory. Virtually all the effects are coded entirely in assembly language with a small high-level interface. In addition, Sprite CAD (next page) was used for many of the sequences. A single effect often took several days to perfect.

3D Vector Graphics (1993)


Figure: Front view of upper campus


Figure: Another view of university avenue.

Role

Co-developer.

Overview

Requested by the Department of Computer Science at UCT, the actual project title is ‘A virtual walk along University avenue’. However, the viewer is also allowed to fly and can be positioned anywhere in the scene. The controls are similar to an aircraft simulator. A recorder is also available to store a fly-through for later playback.

Technical Overview

The software was written in C, with assembly language sorting, back-face culling and polygon-fills. The viewer is programmable from a scripting language which allows the user to define custom objects and new scenes. The system is resolution independent, but real-time is only available in 320x400 or below.

Sprite CAD (1990-1992)


Figure: The text-based part of the interface.


Figure: The high-resolution sprite editor.

Role

Developer.

Overview

Sprite CAD is a suite of programming tools designed for the manipulation of sprites. The suite consists of 4 major components:

  • Sprite management system and editor
  • Colour palette editor for palette manipulation
  • TSRs for capturing sprites and screens
  • Animation library for game writing

During the period of its development, there was a serious shortage of game development tools, specifically for VGA and Super VGA. The entire kit was distributed as freeware on local bulletin boards. An 85 page user manual was included.

Technical Overview

The majority of the code is written in Turbo Pascal 5.5, while the remainder is coded in assembly language. The TSR applications are written exclusively in assembler and can capture sprites from almost any program. The high-resolution editor (left) directly supports seven major VGA compatible chipsets and many more indirectly. The animation library consists of high-speed animation routines for overlaying and animating sprites. The performance was comparable to any commercial package available at the time. The overall size is roughly 30,000 lines of source code, including assembly.