Scott's Place


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. (code repository )


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


A tool for analyzing musical overtone sequences.

Angular 17/Typescript (code repository )

Sea Battle Thumbnail


A tool for visualizing the night sky.

Universal Windows Platform/C#

Sea Battle 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.

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 (code repository )

Sea Battle Thumbnail


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.

React/Typescript (code repository )

Blazor (WASM)/C#/.NET 7 (code repository )

Wumpus Thumbnail


This game is great for playing with nested components.

React/Typescript (code repository )

Wumpus Thumbnail