Scott's Place
Portfolio

Lea

Lea is an event aggregator designed to be lightweight and thread-safe. It maintains only weak references to the subscriber callback so that it never blocks object destruction.

C#/.NET 7

NuGet.org [code]

Dorico.Net

This library abstracts communication with the remote-control API in the Dorico music scoring application.

C#/.NET 8

NuGet.org [code]

Orrery

An orrery (Wikipedia) is a mechanical model of the solar system that illustrates the relative positions and motions of the planets. This digital orrery provides an interactive 3D visualization of the solar system using accurate astronomical calculations.

This web application also served as my first experiment with AI assisted development.

Angular 21/Typescript/Claude Sonnet 4.5

Launch [code]

Orrery Thumbnail

Overtone

A tool for analyzing musical overtone sequences. Choose from provided MIDI files, or upload your own.

Angular 17/Typescript

Launch [code]

Overtone Thumbnail
When learning a new language or framework I usually implement one of the following games as a learning exercise. These projects touch on several aspects of programming: layout and componentization, data structures and data manipulation, as well as eventing.

Imhotep

A remake of a BASIC classic. Administer the construction of a pyramid.

React/Typescript/Vite.

Play [code]

Imhotep Thumbnail

Sea Battle

An adaptation of a classic 2-player naval warfare game, this SSR web app uses SignalR to exchange game events and data between multiple clients.

Blazor Server/C#/NET 8.

Play [code]

Sea Battle Thumbnail

Wumpus

This is an old game from the 70s/80s. Map generation is a good way to learn about a languages' data structures. The game also generates events that require handling.

Play - React/Typescript version [code]

Play - Blazor (WASM)/C#/.NET 7 version [code]

Wumpus Thumbnail

Sudoku

This game is great for playing with nested components.

React/Typescript

Play [code]

Wumpus Thumbnail