Kowloon was an interactive art installation created in collaboration between Tucker Baumgartner and myself. It is named after the Kowloon Walled City, which was the main inspiration behind its disjoint boxy appearance.
See the relevant page on my portfolio for further details on this project.
In order to build the project, you will need to install the .NET Core 3.1 SDK (scroll down and expand "Out of support versions".)
Otherwise building is like any other .NET app. Open in Visual Studio and press F5 to run, or execute dotnet run --project Kowloon in the root of the repo.
The simulator is Windows-only as it uses WinForms. You can disable the simulator by commenting out the relevant ProjectReference in Kowloon.csproj.
CyberTest-- This is a smoke test app used for testing the basic functionality of the hardware and therpi_ws281xbindings.Kowloon-- This is the Blazor Server UI for Kowloon.Kowloon.Core-- This is the meat and potatoes of Kowloon. All logic for handling LED strings and animations and such lives here.KowloonManageris the root class here. It provides the interface used by the Blazor app to interact withKowloonControllerKowloonControllermanages the rendering thread as well as the actual display.- 60 times per second it asks to current
IRendererto render out the display and then instructs the currentLedStringbackend to update the display.
- 60 times per second it asks to current
ApartmentManagerthis is the primaryIRendererimplementation used when the display is not showing a test pattern.- It's responsible for keeping track of the colors of each apartment, applying animations, and the current palette.
KowloonConfigdescribes the physical topology of the display as well as the colors in each palette.
Kowloon.LedControl-- This project provides theLedStringbackend abstraction as well as the primary implementation used on the Raspberry Pi for physical LEDs.Kowloon.LedControl.Simulator-- A quick and dirtyLedStringbackend implementation that displays LED colors using WinForms.RpiWs281x-- Basic C# bindings around rpi_ws281x
This project is being published as part of my portfolio and for educational purposes. It is not licensed as open-source software.
You may download and build this software for your own personal reference and learning purposes. You may not redistribute it in source or binary form. You may not use any files within this repo for commercial purposes.
I'd be open to properly open-sourcing portions of it if someone sees value in it, so feel free to open an issue with your use-case to express interest. (Most likely though everything in here is probably too old to be of any use except to wholesale clone Kowloon. You should make your own cool LED thing instead!)
Additionally, this project has some third-party dependencies. See the third-party notice listing for details.