This is a really good (if simply produced) primer on Islamic Geometric pattern making, targeting Logo on a BBC Micro. The code will run (with some scaling work) under modern Logo interpreters.

Islamic Patterns : Walsall Logo Project : Internet Archive — https://archive.org/details/ipb_20250915

#RetroComputing #BBCMicro #Logo #geometric_patterns #turtle

@scruss Thanks. Here’s the Sierpinski program adapted to run LibreOffice using the built-in LibreLogo environment https://help.libreoffice.org/latest/en-US/text/swriter/librelogo/LibreLogo.html

One of LibreLogo’s advantages is that the output is vector graphics that can be edited (but rasterised here for convenience).

TO CORNER :S
RIGHT 45 FORWARD :S RIGHT 45
END

TO ONESIDE :S :DIAG :LEVEL
IF :LEVEL = 0 [ STOP ]
ONESIDE :S :DIAG :LEVEL - 1
RIGHT 45 FORWARD :DIAG RIGHT 45
ONESIDE :S :DIAG :LEVEL - 1
LEFT 90 FORWARD :S LEFT 90
ONESIDE :S :DIAG :LEVEL - 1
RIGHT 45 FORWARD :DIAG RIGHT 45
ONESIDE :S :DIAG :LEVEL - 1
END

TO SIERP :S :LEVEL
:DIAG = :S / 1.414
REPEAT 4 [ ONESIDE :S :DIAG :LEVEL CORNER :DIAG ]
END

CS
HT
PU HOME RT 90 BK 100 LT 90 BK 100 PD
SIERP 10 4
FILL

#CreativeCoding #pattern #Sierpinski #fractal #Logo #TurtleGraphics #LibreOffice #LibreLogo #geometry #CreativeCode #procedural #CreativeCodeArt

@foldworks I'd forgotten about LibreLogo ... even though I've written about it in the past. This happens to me a lot.

Looks like the librelogo website is dead, and the documentation is gone from my version (25.2)

@foldworks I'm also finding it doesn't accept standard logo commands that work fine in ucblogo. Maybe that's why I'd forgotten about it

... ah, never mind. It seems to have POINT and HEX as reserved keywords

TO hx :size
REPEAT 6 [
tri :size FORWARD :size LEFT 60
]
END

TO PT :size
FORWARD :size
RIGHT 150
FORWARD :size
LEFT 30
END

TO superhex :size
REPEAT 6 [
hx :size PT :size FORWARD :size LEFT 60
]
END

TO tri :size
REPEAT 3 [
PT :size
]
END

CLEARSCREEN HIDETURTLE superhex 50

@scruss Nice, this version has a few changes to fill the shapes with PENDOWN and PENUP to avoid draw extraneous lines.

TO hx :size
REPEAT 6 [
tri :size FORWARD :size LEFT 60 CLOSE FILL
]
END

TO PT :size
FORWARD :size
RIGHT 150
FORWARD :size
LEFT 30
END

TO superhex :size
REPEAT 6 [
FILLCOLOR "gray" FILLTRANSPARENCY 50 hx :size PU PT :size FORWARD :size LEFT 60 PD
]
END

TO tri :size
REPEAT 3 [
PT :size
]
END

HOME CLEARSCREEN HIDETURTLE
superhex 50

#CreativeCoding #pattern #Sierpinski #fractal #Logo #TurtleGraphics #geometry #CreativeCode #procedural #CreativeCodeArt #design #tiling #GraphicDesign

@foldworks the code I posted, though, had minimal changes from the code for the BBC Micro in the Islamic Patterns booklet

@scruss Yeah, but sometimes the smallest thing can stop things working in LibreLogo https://help.libreoffice.org/latest/en-US/text/swriter/librelogo/LibreLogo.html

"Program blocks need space or new line at parenthesization: REPEAT 10 [ FORWARD 10 LEFT 36 ]

Lists need close parenthesization: POSITION [0, 0], and not POSITION [ 0, 0 ]"

And sometimes LibreLogo seems to get into a state where quitting and restarting is the only option.

Mixing Logo and Python syntaxes is flexible but makes my head hurt a bit

LibreLogo Toolbar