L-system implemented in Go with Ebitengine.
BarnsleyFern.mov
BinaryTree.mov
DragonCurve.mov
KochCurve.mov
SierpinskiTriangle.mov
system/L-system interface and rewriting logic (see below), and a few examples.render/Renderer inferface with turtle graphics.game/Game engine logic.main.goEntry point. Select examples here.
type System interface {
Axioms() []rune
Rule(r rune) []rune
}
type PathRenderer interface {
Render(runes []rune) vector.Path
AsyncRender(runes []rune, cancel <-chan struct{}) <-chan vector.Path
}