Duncan Fraser

Programmer and architect

Professional architect and self-taught programmer interested in designing and making.

profile picture

Portfolio

.net core web project

A web-based service for locum doctors to book and manage shifts and for hospitals to manage their locum staff. Basically an automated locum agency.

Built in C# with the .net core MVC framework, connecting to a SQL database through the Entity framework.

It uses MVC and N-Layer pattern as well as dependency inversion. It also has basic logging, error handling and user authentication.

  • c#
  • .Net core MVC
  • Entity framework
  • SQL Server
  • Html
  • CSS
  • Javascript
vr projects

VR Showroom is a real-time rendered environment in Unity3D which can be explored and interacted with in virtual reality. It is intended as a sales tool for estate agents and property developers.

VR Sketch is a plugin for SketchUp enabling the user to create 3D geometry while inside VR. This is an active product made by a team of 3 people. My responsibilities revolve around product design and marketing and I have contributed small amounts of code.

  • c#
  • HTC Vive
  • VR
  • Unity3D
  • SketchUp
  • Photoshop
  • Archicad
Unity game

A 2D physics based motorcycle game made in Unity3D where you can ride through procedurally generated worlds trying to survive to the end of each stage.

The lighting and colours slowly change as you ride. The player can setup and adjust their bike for each race as well as view live stats like rev-count, speed, progress, time and a mini-map of upcoming terrain.

  • c#
  • Unity3D
  • Photoshop
React project

Built with React and Typescript, SteamSpySpy collects and collates data from the SteamSpy API and then displays it back in a more useful format.

The back-end is a .net core REST API project, SQL database and Console application. The Console app acts as a command terminal to control when and how to access the SteamSpy API to populate and modify the SQL database.

The front-end is a basic React app that receives JSON from my end-points and uses the ChartistJS library to plot some of the data.

  • React
  • Typescript
  • Chartist
  • SteamSpy API
  • c#
  • .Net core MVC
  • Entity framework
  • SQL Server
  • Html
  • CSS
Unity experiments

1.This is a game based on Conway's Game of Life where you draw simple patterns between simulations trying to take over as much territory as possible while your enemies try do the same.

2. In this experiment I implement my own genetic algorithm. The population is represented by grid of RGB values. Fitness was measured by how close to pure red they are.

3. After seeing footage of self–driving car LIDAR systems I implemented my own simple real-time LIDAR in Unity.

4. This in a VR implementation of a Boid flocking simulation. Each agent follows 3 simple rules about how they react to each other. In VR they swarm around you but are drawn towards your right hand and flee from the left.

  • C#
  • Unity3D
  • Flocking AI
  • Genetic algorithm
  • LIDAR
  • Conway's Game of Life
Smart door-bell

The smart door-bell uses a Raspberry Pi to steam video to a local website. When the door-bell is pressed it takes a photo and sends it to the owners phone as a Telegram message. The owner then has the option to open the door remotely or view the live stream.

This system was commissioned for a co-working office who wanted control of their front door even when they were not there.

  • Python
  • Raspberry Pi
  • Telegram API
  • Video streaming
Roster

This browser based tool was made to help the Emergency department at Victoria Hospital schedule their staff. As one assigns staff to each shift it automatically checks through a large list of rules and warns you if you have any clashes or problems.

Everything runs in the browser but was written in C#. It uses Bridge.Net to transpile C# into Javascript.

It was writen in such a way that I can one day try add a genetic algorithm to try solve the my version of the Nurse scheduling problem.

  • C#
  • Bridge.Net
  • Javascript
  • C# transpiled to JS
  • Html
  • CSS
Gravitron

Built in 48hours in a team of two, Gravitron is a two player 2D physics based problem solver game. The two players have to work together to solve 9 challenges.

Gravitron was part of the 2017 SA Game Jam and received an Honourable mention.

Download the game here

  • C#
  • Unity3D
  • Photoshop
Schools in Plettenberg Bay

While working at CMAI Architects, I was the architect responsible for managing the contract and construction of two new schools for the Western Cape Department of Education in Plettenberg Bay.

  • Project management
  • Contract management
  • Project architect
  • Architecture
Buildings in durban

I have been involved in and run a number of architecture projects at all stages: feasibility, design, documentation, approval, contract management and construction.

The projects range from residential and small commercial to large office buildings.

  • Design
  • Project management
  • Architecture
  • Archicad
Architectural visualizations

Using a number of traditional ray-tracing rendering programs combined with Photoshop I have created a number of architectural visualizations.

  • Design
  • Drawing
  • Architecture
  • Photoshop

Curriculum Vitae

Work experience

  • 2016 - current (Cape Town)
  • 2015 - 2016 (Knysna)
  • 2012 - 2014 (Durban)
  • 2007 - 2012 (Cape Town)
    • Masters in Architecture at the University of Cape Town
  • 2006 (Pretoria)
    • Matriculated Cornwall Hill College

Skills

  • I have worked as a professional for 5 years, including running my own architecture firm and co-founding a small VR company. Over this time I have been involved in and managed many different projects, big and small, at all stages.
  • I have experience in architectural and graphic design.
  • C# is my language of choice but I have also use Javascript, Typescript and Python.
  • Framework-wise, I have done lots of work with Unity3D followed by .Net core MVC and then React.
  • I have experience with GIT, Visual Studio/VS Code, Adobe Photoshop, Adobe Premier Pro, Archicad, Revit.
  • I pride myself on my ability to learn.

Hobbies

Rock climbing, photography and travel

Himalayas 2012

Himalayas 2012

Patagonia 2016

Patagonia 2016

Patagonia 2016

Patagonia 2016

Chapmans peak 2011

Chapmans peak 2011

Mont blanc 2010

Mont blanc 2010

South East Asia 2014

South East Asia 2014

Madagascar 2013

Madagascar 2013

Himalayas 2012

Himalayas 2012

Vietnam 2018

Vietnam 2018