Galapagos, September 2019

Since I've gone dark for the whole summer I decided it's time to summarize everything that happened and the new release plan:

  1. I dropped Web Assembly support - indirectly. The issue I encountered was that I was dealing with a work-in-progress system with many incomplete tools. This led me on a renewed search for the right programming model. I realized that binary formats are not sustainable enough - source code is. So WASM is not relevant as an end-user feature, although it might appear as a way to support compiled languages. On my end I want to only support stuff that I can support well, with reasonable error messages and debuggability, and that's something that's easier when taking this approach. But it led me to chase after a "right language" again, causing...
  2. Diversity as a named goal. This gradually crept into view because I realized that sustainability needed diversity and vice versa. It let me relax the need to find "the right language". And it's made possible because I now have a system of code generation that assists in creating explicit memory maps and bindings for them, which makes the overall architecture and interfaces extremely clear even if cores change or are versioned(sustainable, linear).
  3. Configurable I/O and CPU cores. I resisted this because it was less linear in nature than providing a single set-in-stone environment, but once I accepted it along with diversity, the pathway to release cleared up. You now have the possibility of mixing and matching different languages and I/O, and as I go along I can add new ones. This makes the whole system more like the modular patch synthesizers that were one of my inspirations.
  4. Release with a 2D graphics core first, named Raster. This reduced the scope of what I'll have to do in the near term for tools, and it's been helpful in revising what I'll do when I return to 3D. It's a very powerful and unique 2D system and you will be able to do some cool effects with it.

Since Raster is functioning at 95%(everything is implemented and tested on the happy path, it just needs additional tests and documentation), and I have a synthesizer working but in need of revisions, I have some high confidence for releasing in October.  The remaining stuff is in fleshing out the CPU cores(mostly a matter of adding the binding generators) and the soft storage system(mostly written, slightly tested), and then doing some demos and docs to put a ribbon on it.

It'll still be an unpolished release without GUI or much in the way of tooling, but I'll get on those things pretty quickly.

Leave a comment

Log in with to leave a comment.