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.go
Entry 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
}