Kuf is a small program for generating patterns that
conform to the rules of square kufic calligraphy,
written in ANSI C.
The source code for Kuf can be found on sourcehut.
2021-08-18 21:20:02: with the initial correction filter complete, (kuf) is now ready to be published online. adding links to the wiki page now.
2021-07-17 15:58:07: re-examining (kuf) after many months away from it. the only thing preventing me from using this is the lack of a correction filter. that's the missing part, then I'd consider this project 'completed'
2021-01-07 17:39:12: thinking I may add (kuf) to the loom early, before I upload the code itself. Right now, it is complete enough for display.
2021-01-07 17:23:52: then some square primitives, defined as macros? these could be used to make initial drawings, which could then be processed by the block filter to make tesselations "technically correct".
2021-01-07 17:22:50: A block can now be written to a PBM file. What should happen now is a more generic PBM file that can write an arbitrary NxM array of squares (not blocks) to a PBM file.
2021-01-07 15:39:00: the block generator seems to work now. gonna make a PBM exporter next and turn that into the example file.
2021-01-07 11:13:33: almost done being able to generate a block with (kuf). I must say, it's very promising that I'm able to jump right back into this project after a 5 month hiatus. I think that's one point for (literate_programming).
2021-01-06 18:04:42: initial eastwall solver implemented, but untested.
2021-01-06 17:44:42: I'm using cardinal directions to represent sides, and it's really exposing how directionally challenged I am.
2021-01-06 17:24:25: really anything that ends up being a song or picture in the end usually ends up being a satisfying investment of time.
2021-01-06 17:18:13: this (kuf) project is very satisfying to code up. it's got a very nice bottoms-up structure to it that feels very clean. I love systems composed using only a handful of simple operations.
2021-01-06 11:45:37: an initial implementation was made yesterday. it can now generate squares (4x4) tilesets. now extending things to make blocks (8x8 tilesets).