I have settled in on a final scope!
I'm building an art program, where the tools are defined entirely with L-systems.
During the first week, I bootstrapped it--I have a running, messy version. It's useable, with two built-in brushes.. and, *drumroll* a plugin system, which allows more brushes to be retroactively added in through code.
Wait, why L-systems for an art program?
Simply put, the iterative rule structure has some interesting consequences. For example--at a later point, I will have "modify brushes", which allow previous strokes to be altered. This is something that, AFIK, has never been done within a raster system. It also means that users aren't constrained to standard systems. They could, for example, run a simulation with a brushtroke. They could paint mountains, then weather them. They could make an object, then with one use of a brush, cause it to rust.
I'm building an art program, where the tools are defined entirely with L-systems.
During the first week, I bootstrapped it--I have a running, messy version. It's useable, with two built-in brushes.. and, *drumroll* a plugin system, which allows more brushes to be retroactively added in through code.
Wait, why L-systems for an art program?
Simply put, the iterative rule structure has some interesting consequences. For example--at a later point, I will have "modify brushes", which allow previous strokes to be altered. This is something that, AFIK, has never been done within a raster system. It also means that users aren't constrained to standard systems. They could, for example, run a simulation with a brushtroke. They could paint mountains, then weather them. They could make an object, then with one use of a brush, cause it to rust.