Bricologica is a project I was working on from time to time from 2010. I started to get serious just before I was diagnosed with acute lymphoblastic leukemia. I managed to restart work after my first 8 rounds of chemo and then after two more sets of two rounds each. It is a C# project and used 2D graphics, multi-threaded programming, and the Managed Addin Framework (System.AddIn in C#).
What is Bricologica
When using linux, have you ever googled [something that should be simple] and gotten a stackoverflow answer [something long and complex with pipes, 'sed', 'find', and/or 'xargs' containing several of the following characters: & * $ / \ %]? If so and your reaction was "are you &*$/\% kidding me?" then Bricologica is aimed at you.
Instead of command line commands that you have to get just right making sure it's 6 \'s instead of 5, you place brics onto a canvas and run typed pipes between input and output ports on the brics. This makes bric logic. For example, an 'ls' block will have an output with the files in a directory. An input can be set to a directory or a dialong box, or set up to receive a drop. Another input makes it recursive. Another sets whether to include hidden files, etc.
The output is a pipe that can go to, for example, an 'fstat' block which gets at each file's size, for instance. The size is associated with a filename. Pipes can be merged, split, filtered, modified, etc. Action blocks can copy, move, delete, tar, compress, decompress, compile, ... anything. I'm also working an SDK to let users make their own blocks. Or a block can run an arbitrary process with a given user, environment, stdin, stdout, stderr, and status.
Clicking on a pipe will show the typed data contained in the pipe. Pipes can be turned off to do dry runs for example. Bric ports have a help page a click away, can be hidden/shown, rearranged and connect only to inputs/output of the same type. Clicking on a bric will also bring up a useful help screen.