Craig Oates

Smouldering Beach Ball


Linux MacOS Windows

All Software Projects

Smouldering Beach Ball is an open source project, hosted on Git.Abbether. Its aim is to speed up the creation of placeholder images. The intended audience is software developers around the rapid application development (RAD) space. So, if you are building application prototypes or proof-of-concepts, this might be useful.

The project as a whole consists of three smaller projects. The first one is a .Net Standard (2.0) library, which is available as a NuGet package. The second one is a console program. Which provides a way to use the library's code outside of a coding environment. The third project is the Test Centre, which houses the library and console program's tests. The source code is all in F# and focuses on .Net (4.7+), for now. With the library being a .Net Standard (2.0) library, it is capable of providing .Net Core features in the future.


  • F# (4.5+)
  • Visual Studio 2017 (15.7+)
  • .Net Standard (2.0)
  • .Net (4.7+)

Smouldering Beach Ball: .Net Standard 2.0 Library (A.K.A. The NuGet Package)

This project holds the code which makes it all possible. If you want to add the code from this project into yours, you would add this, as a NuGet.

As stated earlier, it is an F# code-base. It, also, uses System.Drawing, not System.Media. This means the brushes you use will need casting back and forth. Another thing to note is the use of colours. You will see/use things like Colors.Red instead of Color.Red.

Smouldering Beach Ball CLI

This is a console program which hooks into the above library code and provides two functions. The first one is to offer a way to interact with the library code without writing any. The second one is to test the code in a project when outside of the library project. With that said, the testing part is more about complementing the Test Centre.

To help explain what I mean, here is an image showing how the console program works.

Figure 1
Figure 1: A typical example of how you would use Smouldering Beach Ball CLI.

This project is, also, written in F# and is a .Net 4.7 project. On top of that, I built it using Console.Waterworks. So, if you want to extend this program, I recommend you look into what that is. (It's another open source project I've written.)

Test Centre

This houses all the unit and property tests for the library and CLI projects. The unit tests are written with xUnit and the property tests in FsCheck. Test Centre is a regular .Net library and written in F# -- like everything else in this project. It, also, utilises xUnit's integration in Visual Studio's Test Explorer. This makes it easy to see which tests are passing and failing.

Relevant Links