Sunday, June 08, 2025

machine learning explained

Below is a summary of an article by Rodney Brooks, Machine Learning Explained (2017).

This inspiried me to take on the development of my own version of hexapawn (referenced below) in python. After reading the Rodney Brooks article I did search around and found a hexapawn version written in Scratch by puttering. The rules are outlined there. The machine improves their play as it plays. I played 30 games with it. For the first 10 I won 6 and the machine 4. For the next 10 I won 4 and the machine 6. For the final 10 I won 2 and the machine 8. I hasten to add that in this game black has the advantage and with perfect play should win 0 to 10.

Anyway Machine Learning is all the rage now so I'll summarise large section of the Brooks article. Of course, you should read the whole thing:

Machine Learning

  • is what has enabled the new assistants in our houses such as the Amazon Echo (Alexa) and Google Home by allowing them to reliably understand as we speak to them.
  • is how Google chooses what advertisements to place, how it saves enormous amounts of electricity at its data centers, and how it labels images so that we can search for them with key words.
  • is how DeepMind (a Google company) was able to build a program called Alpha Go which beat the world Go champion.
  • is how Amazon knows what recommendations to make to you whenever you are at its web site.
  • is how PayPal detects fraudulent transactions.
  • is how Facebook is able to translate between languages. And the list goes on!

Machine Learning is not magic.

Every successful application of ML is hard won by researchers or engineers carefully analyzing the problem that is at hand. They select one or many different ML algorithms, and custom design how to connect them together and to the data. In some cases there is an extensive period of training on very large sets of data before the algorithm can be run on the problem that is being solved. In that case there may be months of work to do in collecting the right sort of data from which ML will actually learn. In other cases the learning algorithm will be integrated in to the application and will learn while doing the task that is desired–it might require some training wheels in the early stages, and they too must be designed. In any case there is always a big design project about how, when the ultimate system is operational, the data that comes in will be organized, processed and mapped before it reaches the ML component of the system.

Alan Turing was assisted by Donald Michie in developing the code breaking Colossus computer Bletchley Park during WW2 which helped shorten the war against fascism

After the war Arthur Samuel developed a machine that could play draughts from 1952-56, the first AI in the USA.

Samuel wondered whether the improvements he was making to the program by hand could be made by the machine itself.

What Samuel had realized, demonstrated, and exploited, was that digital computers were by 1959 fast enough to take over some of the fine tuning that a person might do for a program, as he had been doing since the first version of his program in 1952, and ultimately eliminate the need for much of that effort by human programmers by letting the computer do some Machine Learning on appropriate parts of the problem. This is exactly what has lead, almost 60 years later to the great influence that ML is now having on the world.

Samuel explored two (machine) learning techniques:

  1. Memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again
  2. The other learning technique that he investigated involved adjusting numerical weights on how much the program should believe each of over thirty measures of how good or bad a particular board position was for the program or its human opponent. This is closer to how ML works today.

Donald Michie himself built a machine that could learn to play the game of tic-tac-toe (Noughts and Crosses in British English) from 304 matchboxes, small rectangular boxes which were the containers for matches, and which had an outer cover and a sliding inner box to hold the matches. He put a label on one end of each of these sliding boxes, and carefully filled them with precise numbers of colored beads. With the help of a human operator, mindlessly following some simple rules, he had a machine that could not only play tic-tac-toe but could learn to get better at it. He called his machine MENACE, for Matchbox Educable Noughts And Crosses Engine, and published⁠5 a report on it in 1961. A matchbox computer is still a computer!

In 1962 Martin Gardner⁠ reported on it in his regular Mathematical Games column in Scientific American, but illustrated it with a slightly simpler version to play hexapawn, three chess pawns against three chess pawns on a three by three chessboard. … Gardner suggested that people try building a matchbox computer to play simplified checkers with two pieces for each player on a four by four board.

Rodney Brooks recounts how he eventually came to realise that this was a wonderful way for explaining how machine learning works.

Today people generally recognize three different classes of Machine Learning, supervised, unsupervised, and reinforcement learning, all three very actively researched, and all being used for real applications. Donald Michie’s MENACE introduced the idea of ML reinforcement learning, and he explicitly refers to reinforcement as a key concept in how it works

Footnote:
I explain in this article, an AI taxonomy, the difference between Machine Learning (ML) and AI. You can have forms of AI that don’t learn over time. Symbolic AI, Traditional robotics and Behaviour based robotics could all fit this category. They are programmed, they do some human like stuff but don’t change or improve over time without human reprogramming. They are still important but sidelined at the moment due to the LLM (Large Language Models) hype.

Wednesday, June 04, 2025

my crystal neopixel lamp

The Concept:

This started from the idea of making a lamp with flashing, coloured LEDs inside. The inspiration here was seeing such a lamp made by Robin at Hackerspace for his grand-daughter. I learnt then about the ESP32 board which enables control of the flashing LEDs, aka Neopixels, from your phone.

Previously, I had made a Sierpinkski sieve a Sierpinski pyramid lamp with transparent PLA filament and lit it up with a couple of Circuit Playgrounds in the base. Up until then that was my favourite make! This background partially determined my direction for this project.

So, I found a crystal lamp on printables, here, which had been partially hollowed out and printed it with transparent filament.

This pic is from Printables: I plan to improve it with changing coloured neopixels that go to the top of the central pillar (see video near the bottom of this article)

Then began a complex process of research and buying of materials. I had to determine what to buy and the voltage and current requirements. Adafruit has a comprehensive uberguide about NeoPixels. Some helpful pointers from the adafruit uberguide were:

  • NeoPixels are usually described as “5 Volt devices” ... (but) ...Lower voltages are always acceptable, with the caveat that the LEDs may be slightly dimmer. There’s a limit below which the LED will fail to light, or will start to show the wrong color.
  • NeoPixels don’t care what end they receive power from. Though data moves in only one direction, electricity can go either way. You can connect power at the head, the tail, in the middle, or ideally distribute it to several points.

I also consulted with Robin at Hackerspace about which strips and ESP32 to purchase.

My plan became something like this:
  • purchase a cuttable RGB+IC 144LEDs/m WS2812B LED Strip. I then cut 3 strips, cutting at the copper dots, each 14 LEDs long and arranged them around a triangular prism so there will be lots of flashing lights from all directions.
  • design and 3D print a hollow triangular prism support for the LED strips after they had been cut
  • design and print a base with a cavity to hold the batteries and the ESP32 board
  • purchase a SuperMini ESP32-S3, 23mmx18mm, keeping it small so as to keep the cavity small
  • power the whole thing with 3xAAA batteries in a cylindrical holder (55mm long x 22mm diameter), amounting to 4.5 volts

In retrospect, this is or was a reasonable plan. Of course there are alternatives, eg. rather than the bulky battery holder run a cable to a 5v power supply. I was muddling through. Doing things for the first time is always hard.

Understanding the circuit and how the LED strip works

Initially I didn’t understand how the Neopixel strips (WS2812) worked. I hadn't grasped the significance of the comment in the adafruit uberguide, that "NeoPixels don’t care what end they receive power from." As it turns out each LED has its own processor. One side is positive, the other side negative and the data flows in one direction marked by an arrow on the strip. My understanding now is that the circuit(s) are made up on the fly as the current flows across through each LED.

Triangular prism designed with SCAD

I wanted to upgrade my 3D design skills so this time I opted to learn SCAD, which has a mathematical approach to design. I found it to be fairly intuitive after looking at a couple of beginner’s tutorials.

SCAD design of triangular prism onto which the LED strips are mounted (I printed this with transparent PLA filament too

Fastening the LED strips, wiring up, soldering and testing

I wanted a transparent hollow triangular prism to fasten the LED strips onto, with small holes at the top and bottom to run wires through to the inside. I designed this with SCAD. It was surprisingly easy and elegant!

I cut three strips, cutting at the copper dots 14 LEDs / strip. I wired up the positives at one one end and the GND and data the other end. The idea here was to avoid clutter at one end.

It took me a while and help from Robin to understand the circuit and data flow

  • the circuit goes through each LED (where is this explained?)
  • the arrows on the strip show the data direction

For stripping the wires I needed the right tool, although the experts can do it by feel. Before soldering I removed one LED from each strip with a heat gun. I did this because the copper dots when cut in half were very small.

I tested the strip using my Sunfounder kit and it was successful!

Design and redesigns of base with SCAD

I had to do a few redesigns along the way after I decided to insert a relatively bulky cylindrical battery holder (55mm long x 22mm diameter) into the base.

SuperMini ESP32-S3

I found helpful information about the SuperMini ESP32-S3 Development Board here.

  • some simple tests to check if the board was working
  • pin layour and which pins were safe to send data through

Then I had to figure out how to flash micropython onto the board. Once again help was there online: Instructions

Coding in micropython

I opted for coding in micropython which I find easier to understand than arduino C++. I bought a Sunfounder ESP32 starters kit, installed Thonny IDE and started working through their online micropython tutorials. They did have a micropython WS2812 tutorial for an 8 LED strip, which gave me a good start for the code.

I thought an effect where the colour grows stronger then fade and then changes to another colour would look good. It took me a while to figure out how to modify the code so it was both elegant and did what I wanted. This involved writing efficient functions and looking up the RGB values for different colours.

The Thonny code tested alright on the LED strips but then I had to figure out how to run it from the ESP32 board. With a Save As... I could download it to the board and then found an article which explained that it had to renamed main.py and then it would run.

There is also the WLED option which provides tremendous variety but you miss out on the joy of coding ;-)

Not the final version, but it does show the neopixels burning brightly!

Trouble shooting / Problem solving: Suitable wire thickness.

You need the right materials. The experts can wing it but mere mortals like me need the right materials.

"For the lack of a nail a kingdom was lost" - Shakespeare
For the lack of 26 AGW wire a crystal neopixel lamp was compromised - Kerr

During my near the end soldering session I suddenly discovered that two out of three LED strips no longer lit up. The problem was that I had used very thin wires and with a little twisting some of them broke. So, I went back to replacing the broken wires with thicker ones (22 AGW) and resoldering. But my problems persisted because now the wires were too thick and it is hard to twist three thick wires on the one side and solder them successfully to one thick wired on the other side. So, what I have planned here is to get some 26 AGW (in between thickness) wires and do the whole thing again!

Also my design lacked an important component given that I'm powering off three AAA batteries. A switch! This will be part of my new model

This experience has taught me to improve my soldering skills (use the third hand, flux and the solder sucker when required) and design skills (the wiring was far from elegant). Such is life. I've learnt a lot.

SUMMING UP: WHAT HAVE I LEARNT
  • Thonny python IDE upgrade and use
  • micropython for loops and functions
  • WS2812 Neopixel strip function (power, data), cutting procedure
  • Supermini ESP32 function and testing
  • OpenSCAD skills (designed and made tri prism and base)
  • Circuit or wiring design
  • Soldering skills (wire to wire, stripping, tinning, third hand, solder sucker, heat shrink)
  • Heat gun, to remove one of the LEDs from each strip
  • Problem solving and receiving help
  • Checking parts carefully before buying (eg. bought momentary switches)
REFERENCE

Sunday, May 25, 2025

Medieval helpdesk in English

Still the funniest video I have seen on YouTube:
Here's the direct link to YouTube:

Thursday, May 22, 2025

Tech evolves continuously, Schools lag behind

I argue that the relevant metaphor to build a successful tech group these days is “low floor, high ceiling, wide walls and open windows”.

This approach, promoted by Mitch Resnick at MIT and Yasmin Kafai (source), led to the tremendous growth of Scratch, from 2007. In April 2024, the Scratch team announced that one billion projects had been developed. See Footnote(1) for more of this history and explanation of the house metaphor.

After thought: I ought to mention too, my favourite article about the design of construction kits, written by Mitch Resnick and Brian Silverman. I wrote a summary of this back in 2019, with a link to the original. Their point 5: Simplicity works; their point 7: You can achieve a lot with a little.

All the technology has continued to evolve rapidly. It becomes cheaper and more user friendly. This applies to coding tools, design tools and making tools. Many of the tools are Free or Open Source (FOSS) which reduces barriers to access and attracts communities.

The 21stC making tools which are not free (eg. 3D printers - although some companies such as Prusa do have Open Hardware; laser cutters and more) continue to reduce in cost. One aspect of this is that 21stC making becomes more accessible to a wider audience. This should mean that a tech group should have no problem growing. School students can be part of this since schools are notorious for not keeping up with new developments.

I argue for a beginner’s courses accessible to Middle School students which then lead into more advanced courses (aka mechatronics, making devices which integrate electrical and mechanical processes).

Coding: With block coding, eg. Scratch, MakeCode, students can make something interesting with the process being transparent within 10 minutes.

Design: With Tinkercad you can quickly make 3D objects. This can lead onto more advanced design tools later (eg. KiCAD, openSCAD, Fusion 360)

Making: You can begin with cardboard and then move onto LEGO, 3D prints and laser cuts to make interesting constructions readily. Free designs are available at thingiverse, Printables and other sites.

Micro-controllers: The microbit or Circuit Playground can control neopixels, servos and communicate with each other. They also have A and B control buttons on the board. This can lead onto more complex controllers such as arduino, bread boarding and circuit construction / printed circuit boards.

Microbit or Arduino? I argue for microbit usage in the middle school (years 5-9) and then move onto arduino in the senior school (years 10-12). Start with the low floor and move onto the high ceiling will engage more students. See Footnote 2 for three articles, microbit versus arduino, which support my viewpoint here.

It should be acknowledged that the arduino was a revolution which began in 2005. Open hardware, low cost and easier to use than what came before. The thesis which kicked off the arduino was titled, “Arduino–La rivoluzione dell’open hardware” (“Arduino – The Revolution of Open Hardware”). Reference

Similarly, the micro:bit was a revolution which began in 2015. The floor was lowered further given more users access to microcontrollers. Reference

Project based learning: Many diverse projects can be made where an interesting or inspirational idea can be designed, made and controlled. This builds skills and whets the appetite for more. Once this pattern is established more complex design, coding and making techniques can be further developed.

This is a well established international educational trend beginning with Seymour Papert 50 years ago. LEGO Mindstorms was named after his book, "Mindstorms", written in 1980. He initiated a learning theory called constructionism. The 21stC Maker Movement kicked off in a big way around 2005 when Neil Gershenfeld built the first FabLab at MIT and offered a course called “How to Make almost Anything”.

Some schools are coming on board in Australia (especially Privates) because there is a recognition that STEM or STEAM is both important and engaging. But it is also true that many schools are locked into an ACARA curriculum tick the box model and so fall well short of utilising the full potential of the 21stC Maker movement.

Some brief additional information about existing groups, international and local:

Constructing Modern Knowledge (CMK). Gary Stager has been actively promoting constructionist learning in Australian schools for decades. His group offers workshops and books.

FabLabs: The Fab Labs grew exponentially around the world after 2005. See the map.

Paulo Blikstein has promoted Fab Learn Labs, a school version of FabLabs. Search this blog for some summaries of his outstanding articles.

Whittlesea Tech School, Melbourne PolyTechnic STEAM engine offer a range of courses to surrounding schools in Melbourne

Tech Explorations: Peter Dalmaris, Australia offers advanced online courses. mmm ... even if you don't go lower floor (eg. with the microbit), you can still go wider walls, as illustrated by the diverse options on Peter's site.

Adelaide groups: I am just listing Adelaide tech groups I have become aware of over the past year. I am not attempting to publicly evaluate their success based on the broad criteria outlined in this article, at this stage:

Maker Space
TechSpace Learning
Hackerspace Adelaide
South Australia Micro Controller group (SAMG)
42 Adelaide
Computer Science Education Research Group at Adelaide Uni run online courses in computing fundamentals and lend out construction kits to schools.

Footnotes:

(1) This tests the memory. The Logo language, which preceded Scratch was popular at educational computing conferences in the late 1980s and early 1990s. The educational rationale back then was, in part, to provide a more interesting and engaging way to teach maths. However, when the www came along that popularity died. Living then in Adelaide, Australia, I knew only one other Logo enthusiast. However, I used to participate in the Usenet comp.lang.logo group. Description by Brian Harvey; archive. I remember it as being down the bottom in the usage statistics of all the Usenet groups. However, with the advent of Scratch, Logo was transformed into a multimedia, story telling fun machine. With the conversion to block code (low floor), diverse project multimedia features (wider walls) and remixing / online comments and Likes (open windows) the Scratch version of Logo flourished again.

(2) Three article which argue that the microbit is better for beginners but that to continue the path to mechatronics, you can do more with the arduino:

https://mp.moonpreneur.com/blog/microbit-vs-arduino/
Extract:
Both micro:bit and Arduino offer unique strengths and benefits for DIY electronics projects. Micro:bit excels in simplicity, accessibility, and educational applications. This makes micro:bit a good choice for beginners and educational settings. 

Conversely, Arduino provides versatility, expandability, and a robust community support system, making it ideal for more complex and ambitious projects.
https://www.instructables.com/Comparison-Between-Microbit-and-Arduino/
https://picobricks.com/blogs/info/microbit-vs-arduino

Sunday, March 16, 2025

building the logo turtle

Seymour Papert started lots of things!

How to build a programmable floor turtle” is on Josh Burker’s (JoshB) site: LogoTurtle

INSPIRATION

Going back roughly 50 years, the inspiration originally came from Seymour Papert’s Logo floor turtle which accompanied the Logo programming language, developed for children.

I was further inspired on reading Neil Gershenfeld’s account in his book, Designing Reality, of a conversation he had with Seymour, back then:

“As fab labs started doubling and the Fab Academy began to grow, Seymour came by to see me to talk about them. I had considered the whole fab-lab thing to be an historical accident, but he made a gesture of poking his side. He said that it had been a thorn in his side that kids could program the motion of the turtle but could not make the turtle itself. This had been his goal all along”
Designing Reality, p. 29

Another goal I have is learning more electronics in a practical way. So, I was on the look out for a meaningful project to help me achieve that.

These factors pushed me over the edge. I decided to build the Logo Turtle!

Following the links in JoshB’s article I bought the materials from adafruit, Core Electronics and some other online and local stores.

There were some mishaps along the way. eg. it’s much better if you can get the 2xAA battery holders with a hole in the middle for the flat head screws. After some searching I found an Adelaide store, Altronics, which had these.

I wrote to Josh and his advice was that I should make a Printed Circuit Board (PCB) since the breadboard approach produced unreliable results. He sent me the Gerber files that I needed for that.

I downloaded a free open source viewer, Gerbv to view the files.

I asked for advice on the Adelaide Maker Space forum about how to get the PCB made and some helpful people suggested a couple of companies. I went with PCBWay and they made the PCB for me.

I have my own 3D printer so I printed the parts in PETG. All the links for that are in the JoshB article.

HELP

I’m an electronics novice so I had trouble finding some of the equivalents between the breadboard design and the PCB design. Fortunately I found Tony Onofrio, a friend in the Adelaide Hackerspace group. He translated the fritzing diagram on JoshB’s article into a PCB diagram for me.

Unfortunately, the link to the LogoTurtle software on JoshB’s article is broken. But I wrote to Josh and he sent me the files. Following his instructions (downloading drivers and Java) I tested the LogoTurtle software on the metro mini board and this was successful.

The software is a Logo implementation in Java. The logo files are text files which you download to the metro board. I didn't understand how it was working but spoke to David, a Java programmer at the Hackerspace group and he explained some of it to me.

The next step was soldering the parts onto the PCB board. This was hard for me since I’m a novice at soldering. Again Tony helped out by giving me some lessons in soldering. The order in which I soldered the parts on was: (1) resistors x 2 (2) Darlington driver, note the notch (3) Metro Mini (4) header pins 2 x 5 then x 3 (5) photocell (6) switch

Having done all this I was ready to attach the PCB to the turtle. I soldered the 4 battery leads, plugged in the stepper motor 5 pin connectors and inserted the 4xAA batteries.

I found some pens with the correct diameter at Office Works and placed one in the pen holder on a sheet of paper. I flicked the switch to turn on the metro power, indicated by a green light and pressed the reset button

Hallelujah, the turtle drew a square! Logo.jar runs the test.txt file by default.

to startup
square
end

to square
pd
wait 1000
repeat 4 [fd 100 rt 90]
pu
alloff
end

But note the angles are not quite 90 degrees. Using trial and error, I changed the angle to 85 degrees and it drew a pretty good square

JoshB’s solution here is to add a shim to alter the angle of the stepper motors reproduce. I tried this but it didn’t make any difference.

I wrote to JoshB again and he suggested I alter the sys.txt file where the logo drawing procedures are stored as text files.

So I altered the rt and lt turn procedures by multiply and angle by 85/90. This then drew a perfect square.

to rt :n
make "n :n * 235 / 100 # (the multiplying factor was altered from * 25 / 10)
repeat :n [rstep- lstep+]
alloff
end

I then tried a pentagon, square and triangle combined:

The more ambitious rotating octagon worked well first up:

Then I made a similar change to the arcrt (arc right) and arclt (arc left) procedures and then I could draw near perfect circles and arcs.

An interesting feature of the design is the photo resistor. When exposed to the light the resistance goes down. This photocell is plugged into A0 on the Metro Mini, so you can introduce this value into the code to achieve variations based on light intensity.

Following JoshB's notes I established the A0 values for a bright flashlight were roughly 960, for normal light 830 and with curtains drawn about 565. So I ran the following procedure in normal mode and flashlight mode which modified the size of a circle:

to startup
wait 1000
let [n a0 / 10]
repeat 10 [
arcrt 50 :n
make "n a0 / 10
]
alloff
end

So far, so good. I could draw closed shapes with the LogoTurtle.

But to draw people's initials, for example, you need to be able to lift the pen (logo command pu) and put it down again (pd) at the right times. This requires fitting a servo to lift the pen. I also added a weight to the pen to ensure it drew firmly on the paper when down.

Here are a couple of initials I drew, using the alphabet file from JoshB's LogoTurtle Curriculum. I presented these to a couple of members of the Hackerspace group who have been helping me:

REFERENCE

Josh Burker's original article: LogoTurtle
LogoTurtle Curriculum (lots of great ideas here)

Saturday, March 08, 2025

dragon and egg 3D print

I printed this one on my Prusa MK4 with multi-colour PLA filament:
inside the egg
outside the egg
on top of the egg

Source files:
threaded dragon egg
Small baby dragon (printed half size)

Friday, February 28, 2025

new laser cuts and engraves

Some new cuts / engraves done by me at the Adelaide Maker Space:
Source of files: 3axis.co
Penrose tile, good explanation here
Penrose chicken, brief elaboration here
Soldering iron bit holder. I will give this to the Hackerspace group to say thank you for their help.
USA jigsaw puzzle. Looking for ways to reduce the burning around the state names and making the small state words more readable.
Cats - laser cut by wolfpaw98 on Thingiverse: https://www.thingiverse.com/thing:2259603. Quite difficult to assembly these. Need a small file to trim the joins.

Wednesday, January 22, 2025

microbit neopixel hat

Hat plus duct tape minus electronics

I've built something similar before (link) using a Circuit Playground Express or CPX. The original idea came from Rob Morrill who has developed a series of excellent project for the CPX, here. Follow the instructions there to fill in the gaps of this account. Alternatively, design your own hat.

I left my neopixel hat behind in Alice so it's time to do it again, but this time using the more popular microbit.

Materials: Cardboard, cardboard cutters, duct tape, clear sticky tape, adafruit neopixel strip 0.5m, battery pack 2*AAA or 3*AA (better, I've ordered some), velcro.

The neopixel strips are advertised at adafruit to work with 3-5 volts DC. However, they can underperform without sufficient voltage as the batteries go flat. The microbit pushes out a max of 3.3 volts, so it's desirable to used a 3*AA battery pack for 4.5 volts which is then regulated down to 3.3 volts by the microbit.

I had to visit a couple of Bunnings stores to get cardboard of a suitable length, since my big head has a circumference of 58 cm. I like duct tape to stick things since they remain stuck. But use clear sticky tape to attach the neopixel strip.

What code to use? I plan to use this hat as a demo for the Adelaide Maker Space / Hacker Space groups so I opted for rainbow colours at the front which activate with sound combined with flashing white / black neopixels at the back and a sound bar graph on the microbit itself. Here's the breakdown:

Initialise the neopixel strip

Flash black and white with 16 pixels around the back of the hat

Rainbow effect on both sides at the front, needs sound to activate

Bar graph on the microbit, responding to sound

Finally, the video:

Monday, January 13, 2025

books and articles I am reading in 2025

The list will include some significant online articles too:

Banks, Iain M. Consider Phlebas (1987)
Blum, Hila. How to Love your Daughter (2023)
Capek, Karel. War with the Newts (2001)
Deutsch, David. The Beginning of Infinity: Explanations that Transform the World (2011)
Dalmaris, Peter. Maker Education Revolution: Learning in a high-tech society(2017)
Gershenfeld, Neil; Gershenfeld, Alan; Joel Cutcher-Gershenfeld. Designing Reality: How to Survive and Thrive in the Third Digital Revolution (2017)
Gibson, William and Sterling, Bruce. The Difference Engine (2014)
Harari, Yuval Noah. Sapiens: A Brief History of Humankind (2011)
Hatch, Mark. The Maker Movement Manifesto: Rules for Innovation in the new world of Crafters, Hackers and Tinkerers (2013)
James, Mike. Programmer's Python: Everything is an Object. Something Completely Different. Second Edition (2022)
James, Mike. Programmer's Python: Everything is Data.Something Completely Different. (2022)
James, Mike. JavaScript Jems: The Amazing Parts (2020)
Noble, David. Forces of Production: A Social History of Industrial Automation (2011)
Pickering, Andrew. The Mangle of Practice: Time, Agency and Science (1995)
Sunfounder ESP32 Learning Kit
SunFounder 3 in 1 IoT/Smart Car/Learning Kit
Hackerspace
Tech Explorations
TechSpace Learning
Weir, Andy. Project Hail Mary (2022)


Previous: books and articles 2024

Monday, December 30, 2024

Fab as a new literacy

Literacy: From Writing to Fabbing (2012) by James Gee (extract, read the full essay here)

best quote, although there are many great ones: the word becomes flesh; the flesh becomes word

IMO a very elegant argument about how Fab is becoming a new, two way street, literacy. Design literacy for digital fabrication is every bit as fundamental as reading and writing. Yes, we have some way to go but we are on that path.

The Maker Movement opens up yet another set of design kits, another set of literacies, what we can call “maker literacies”. Maker literacies are not new. People have been making things like quilts and furniture at home of hundreds of years. What is new is the proliferation of making and the ways in which everyday people can compete with businesses, experts, and industry today thanks to digital media. The special part of the Maker Movement I want to concentrate on here is digital fabrication, what we can just call “Fab”. Fab is the newest literacy beyond digital literacies.

Fab is also a code that allows humans to produce and consume meanings interactively and to engage in joint activities. The code is a mapping from ideas (concepts) to real things via computational computer code.

Oral language refers to things in the world. Language is indexical in the sense that it points to or refers to things, but it cannot touch and handle them. Things always stay just out of reach. Digital literacies simulate things, virtual things that can be handled and transformed by the very code that produces them. But like language, digital media cannot touch and handle real things; it can just manipulate them on a screen.

Fab makes real things. It can handle and transform them. It has been argued that what constituted human intelligence in the beginning was our ability to think and plan in our heads deeply prior to acting . Digital media greatly enhanced this human trait. Such media allow us to think and plan on screens in forms that go far beyond the powers of unaided human thought.

Humans have always, of course, been able to make things. Indeed, some scholars have defined humans as tool makers and homo faber. But prior to Fab making was a one-way street. You could go from conception to construction, but not back again. Fab makes making a two-way street. We can now turn bits (digital code) into atoms (things) by “printing” the code and we can turn atoms into bits by reality capturing devices that digitize things and make them into digital code. “Printing” here means machines that can add or subtract material to make things on demand from digital code.

Language and digital media are complementary. Language is good at creating abstractions out of lived experience by finding and naming patterns in that experience. Writing takes abstraction to its furthest extent, especially in special symbol systems like mathematics. Digital media is good at creating new experiences or mimicking old ones. Digital media allow us to think through external images and simulations and not just through conceptual abstractions. One of the greatest powers of digital media is that it can allow people to have experiences that are hard for humans to have in the real world (or to have more than once), experiences that, nonetheless, words can refer to, such as being an electron or sky diving without a parachute. Digital media can, thus, greatly enhance the ability humans have to find and name patterns in experience, the basis of language and learning.

Think of Dungeons and Dragons played as a role playing game with paper and pencil. This is traditional literacy. Here players use words and other symbols (and the occasional plastic figures) to create images in their heads (imaginations) and in the other player’s heads. A video game (including a D&D game like Neverwinter Nights) involves players manipulating images on a screen, not in their heads. Imagination becomes externalized. One is not better than the other. They are complementary ways of thinking, learning, and problem solving.

Fab, our newest literacy, involves a code that maps from ideas to atoms (and back again) via bits. What you can design in a computer, you can order machines (“printers” and “extractors”) to make. What is in the world can be captured digitally (“reality capture”), put in a computer, re-designed, and “printed” back out into the world. The atoms can be materials, cells, or chemicals. Humans are on the verge of erasing the lines between the imaginary, the digital, and the “real” and moving effortlessly back and forth among them. Bits no longer need to create just virtual things; they can now create real ones. In turn, real thing can now easily become virtual ones.

The day may come where we can “print” an organ like a liver or even (the initial cellular plan for) a living thing like a dog. As of now we can print skin, cells, cakes, and houses. Fab is not indexical. It doesn’t point to things. It is not a simulation. It does not make just virtual things. Fab is material. It makes and manipulates matter. Fab trades not in concepts or simulations alone but in physical things as well. It is the “word become flesh”, formerly the domain of magic and religion. The ideas in our minds and the images on our screens can now be born in the world and the world can enter our minds and computers to be re-born as something new. A whole new material form of thought and planning opens up for humans.

Fab is a set of design kits to make things into bits and bits into things. It creates an entirely new way of writing and reading the world. Fab will proliferate into different literacies, different ways of producing and consuming meaning for different functions, accompanied by new registers of oral language. Fab is a cultural invention like literacy. It will without doubt create social gaps and inequalities if we let it.

Fab is a form of literacy where production (“writing”) is the main form. It finally reverses the polarity of traditional literacy and digital literacy, where consuming (“reading”) proliferates, but production (“writing”) does not, creating priests and laity. To be literate in Fab you must be a maker or at least know how a digital object will translate into a real one (and vice versa). It is as if we had demanded that to be literate in writing you had to be a writer and not just a reader, to be literate in digital game literacy, you had to be a designer and not just a player. In fact, a culture of Fab could lead to just such demands.

Just as writing made new demands on and demanded new skills in oral language, and digital lieracy made new demands on and demanded new skills in both oral language and written language, Fab makes new demands on and demands new skills in oral language, in literacy, and digital literacy. The ecology of oral language, of writing, and of digital literacy—and their various combinations and integrations—will change. Language, literacy, and digital literacy will become yet more complicated. The social gaps in each will compound, along with whatever gaps Fab literacy creates unless we will it otherwise.

Fab could create a world with yet deeper inequalities than we currently have, a world where only a few engage in the alchemy of turning ideas into bits into atoms and back again. The rest will live in a world where the stuff of life and the world--objects, cells, materials—are owned and operated by only a few. Fab is a new literacy and we have as yet no real idea how it will work out. But it is a special and, in some sense, final one. For centuries, since Shakespeare at least, being modern has meant to fashion oneself and writing has played a massive role in this process. Now being modern will mean to fashion ones world as the stage on which one plays and lives

Each new literacy ups the ante on ethical questions beyond issues of inequality. Words can hurt and harm, we know. Writing can greatly spread that harm. Digital media can spread it yet faster and further. But Fab can literally remake the world we live in, exhausting it or expanding it, destroying it or renewing it. Fab can make and remake the very stage on which we humans act for good and ill.

How many of us will get to be homo faber? Humans have always been the ultimate took makers. Soon the tools for world making will be cheap enough to be in the hands of everyone, should we want to make that happen. Will we, as a species, make a better world or a worse one when some or many or all of us become god-like creators, calling worlds into being?

Tuesday, December 24, 2024

ant and eagle laser cuts

Someone at the Adelaide Maker Space mentioned 3axis as a good site for free vectors for laser cutting.

Yes, it is! I downloaded an ant and eagle design from there, laser cut them, built and glued the models.

They are called puzzles and you do have to do some tinkering to get all the pieces in their correct places. Fortunately, my friend Pat was there to help out when I got stuck.

Here are the designs in lightburn and pics of the final products:

Friday, December 20, 2024

Fab Labs haven't been growing exponentially

The Gershenfelds make the claim that Fab Labs are growing exponentially every 18 months in their 2017 book, Designing Reality (p 11 and pp 100-102) and follow up articles (Digital Fabrication and the Future of Work, 2018)

They actually claim that this new growth is a continuation of Moore’s Law and this fuels their “third digital revolution” rhetoric (book, p.102)

I wish this was true but it’s not.

This rose coloured glasses rhetoric has puzzled me. There remain significant barriers to setting up and maintaining a Fab Lab. The Gershenfelds point out themselves that training Fab Academy alumni to the daunting skill level required follows linear growth.

Here are the figures from their 2018 article:

In this article they speculate that there will be 25,000 Fab Labs by 2026

The Gershenfelds then predict that Fab Lab growth will level off because by 2026 the machines will be so cheap and improved that personal fabrication will replace Fab Labs

The 25,000 Fab Labs prediction corresponds very roughly to 4 doublings over the 10 year period, 2016-2026, ie a doubling every 2.5 years, not 18 months:

(1,300 2,600 5,200 10,400 20,800
or 1300 * 2^4 = 20,800

However, if we go to the Fab Foundation home page, the figure cited there for the number of Fab Labs currently in the world (December 2024) is 2300 +

So the doubling time since 2016 has been 8 years, not 18 months or 2.5 years! Also, as I pointed out in my earlier article, fab transformation hurdles, Fab Lab / Maker Space growth in Australia has stalled

There are plenty of reasons identified in the Gershenfelds book about why Fab Labs haven’t continued to grow exponentially. I think their book contains plenty of realism as well as hype.

But they still maintain their highly optimistic exponential growth rhetoric about digital fabrication. The most recent writing I have found by the three brothers is in 2021 on the "Centre for Bits and Atoms" site, where they say:

Digital fabrication today is at approximately the same stage that digital computation was in the early 1980s, when personal computers gave millions of people access to a capability that had previously been limited to large organizations. PCs were to be followed two decades later by billions of mobile devices and trillions of connected things.

Today we have thousands of fab labs, with the potential for making millions of personal fabricators — small-scale fabrication systems for individual use — and a research road map leading to a future with billions of universal assemblers, and then trillions of self-assembling systems in future decades. As with the exponential improvements of the earlier digital technologies, each of these stages of development promises to be faster, better, and cheaper.
- The Promise of Self-Sufficient Production

In all our arguments and discussions we need to avoid the hype cycle rhetoric.

Nevertheless, community Fab Labs and school based Fab Learn Labs are still great things with enormous potential IMHO. I have outlined some of the reasons why in my earlier article fab transformation hurdles

As the authors say in their original book digital fabrication is both hard and rewarding. This quote sums it up:

"Digital fabrication is hard. It introduces a set of new competencies, including the navigation of continually evolving CAD and CAM software as well as additive and subtractive hardware, embedded computing, and an understanding of the biological and chemical properties of the materials used in fabrication. It also requires design thinking, creativity, collaboration, problem solving and resiliency. These all require knowledge, skills and mindsets that cross very different disciplines and domains and, as a result, are not currently well integrated. We define fab literacy as the social and technical competencies necessary for leveraging digital fabrication technologies to accomplish personally and professional meaningful goals, as well as a commitment to the responsible use of the technologies. We cannot build towards a more self sufficient, interconnected, and sustainable society without widespread fab literacy." (p. 64)
Update 26/12/24:

I sent this to Neil Gershenfeld and he was good enough to respond, as follows:

But at FAB24:

https://fab24.fabevent.org/

I spoke about two reasons why counting labs was no longer relevant:

  • With the proliferation of mini-labs, superlabs, biolabs, fab hubs, ..., a single number no longer applies
  • What matters at this stage is counting the impacts of the programs that have matured -- student outcomes, fab city metrics, businesses incubated, ...

Tuesday, December 17, 2024

fab transformation hurdles

Background reading: Designing Reality: How to Survive and Thrive in the Third Digital Revolution by Neil Gershenfeld, Alan Gershenfeld and Joel Cutcher-Gershenfeld.

Some write their stories in words. Some write their stories in code; some with materials; some with machines. My current story is a wobbly exploration through all these media to understand the Fab Lab.

Neil Gershenfeld has articulated his Fab Lab vision now for 2 decades: “How to make (almost) anything”. After a brief revisit of what a Fab Lab is this article outlines some of the hurdles that have to be overcome to achieve that vision.

The Gershenfeld interview with Lex Fridman was fascinating IMO

Digital computation has led to the smart phone. Digital communication has led to the Internet. These first two digital revolutions have created new jobs and transformed traditional jobs. Will digital fabrication continue this trend. Is it correct to claim, as the Gershenfelds do, that digital fabrication is the third digital revolution? See Footnote.

What is a fab lab? Digital fabrication is often misunderstood in that people think of it as being just 3D printing. It actually involves a wide range of additive and subtractive technologies, as well as computer-aided design and embedded electronics

The five types of machines found in a conventional fab lab are:

  • Vinyl cutter
  • Laser cutter
  • 3D printer
  • CNC machines
  • Digital Embroidery machines

The MIT course that Neil Gershenfeld initiated in 2003 named “How to make (almost) anything” was a huge hit which led to the creation of Fab Labs around the world. An inspirational slogan!

What sort of things can we make? Well in theory the list goes food, furniture, and crafts to computers, houses, and cars.

What is the overall goal here? The short term killer app is personal fabrication, the ability to make or modify what you can't or can buy in a store. Personal fabrication can take many forms since it depends on each person. My 3D printed personal favourite so far is the Sierpinski Pyramid Lamp.

One possible social goal is to transform consumers into producers. The Gershenfelds approve the Blair Evans vision:

A potential vision for this new blend is represented in the inspiring work of Blair Evans, an accomplished automo­tive engineer and educational leader who is now developing a local ecosystem of fab labs in an economically distressed part of Detroit. His vision is about what he calls “thirds”— building out the digital fabrication capability to the point that people might spend one-third of their time in paid labor to buy what they can’t make, one-third of their time using digital fabrication facilities to make what they can (with a focus on furniture, housing, aquaponic food pro­duction, and other practical things), and one-third of their time to follow their passions in whatever way they choose
- Digital Fabrication and the Future of Work

However, in practice, what you can presently make depends on whether your local Fab Lab has million dollar machines or thousand dollar machines. In practice many fab labs can make very cool small things (eg. an articulated dragon on a 3D printer) but are not making big things. To make the bigger things you would need the big machines, like a CNC milling machine. Yes, the price will drop and access will improve over time. But for now it depends on where you live.

Not every Fab Lab or project ends in success. Neil’s brothers, Alan and Joel Cutcher-Gershenfeld sometimes play the devils advocate in their book. When things don’t turn out the inspirational slogan “How to make (almost) anything” transforms into “How to (almost) make anything”

A case in point. I tried for 3 years to initiate a Fab Lab in Alice Springs. See my 2021 article Your town needs a community Fab Lab

I lobbied government, industry leaders, education leaders and citizens there. But to no avail. My calls were sometimes not returned and in the instances where interest was initially shown it never led anywhere significant.

I did have more success in introducing new innovative subjects and 3D printer technology at the school where I taught. The admin could see the need for a more engaging STEM or STEAM curriculum. But at no stage was I offered the opportunity to explain Neil Gershenfeld’s full Bits to Atoms vision. It felt like being at a banquet but only allowed to eat the grapes.

My failure to kick start a community Fab Lab in Alice Springs could be put down to my poor persuasive powers. However, it might also have been due to deficiencies of the local ecosystem, a troubled town of 25,000 people, to nurture innovation. Neil Gershenfeld points out that MIT isn’t an isolated technology park but is embedded in an ecosystem or environment “that mixes long-term research, short-term development, small start-ups and large corporation, along with cafes, clubs and parks” (p.49)

Furthermore, I notice that Fab Labs are not growing exponentially in Australia, unlike some other countries. On the contrary, if you look at the map some Australian Fab Labs have become inactive (Perth, Ballarat, Sydney). As the two sometimes critical brothers point out, “Digital Fabrication is hard” (p.64)

So, in this article, I want to discuss the hurdles as well as the tremendous potential of setting up a Fab Lab. In 2024, I moved back to Adelaide so will reference the Maker Spaces here.

A Fab Lab needs machines, software, spaces and people who understand (mentors, volunteers)

Space is a huge issue. There are two maker spaces in Adelaide. The Adelaide Maker Space has a huge space in the basement of the WEA Building. The Parks Library Maker Space is part of the library system and has only a smallish room, which does restrict things.

Machines: I listed the 5 types of machines above. An important issue here is enough commonality to allow for interoperability between different Labs around the world. From my reading the most popular machine is the laser cutter. The problem with 3D printers is that they are slow. I noted with interest that Neil Gershenfeld’s favourite machine is the CNC miller. The Fab Foundation site has a page where they specify how to get started and their ideal Fab Lab. For those interested in starting or understanding a Fab Lab there are lots of important details on that page.

Software: Free and Open Source Softwar (FOSS, eg. Inkscape for 2D vector graphics design) lowers the barrier to interoperability but this is not always possible. I’ve noticed some comments in the book (eg. from Nadya Peek, p. 73) about the need to improve CAD / CAM software to make it more intuitive for users

Network effects aka Metcalfes law: the value of a computer connected to the Internet is proportional to the square of the number of computers in the network.

When the digital fabrication hardware and software is interoperable across locations, it enables network effects, greatly accelerating the innovation in a way that is not possible with analog fabrication. I'm wondering if the Maker Spaces in Adelaide could exploit this more. For example, one thing that has surprised me is that although it is very easy to find free 3D print designs online (thingiverse etc.) it is not easy to find laser cut designs. If this global sharing of designs which is embedded in the Fab Lab charter is a reality then why are laser cut designs hard to find?

In this sense digital fabrication is revolutionary but only when linked to the earlier digital revolutions of computation and communication. I have a sense that the Australian Fab Labs are operating too much in isolation from each other and the world global movement.

People: The Adelaide maker space in the WEA basement is staffed entirely by volunteers. This surprised me but it seems to be working. There are induction sessions to get started on particular machines, projects or rooms. There isn’t a formal ongoing mentoring system. If people are stuck then they can ask a volunteer for help. This often works but not always. eg. I had a problem where the laser cutter simply stalled at the start which neither I nor the volunteer could solve.

The Parks library is staffed by a couple of paid workers who are expert makers. They have an induction system and you can make appointments if you need to skill up in a particular area.

Community: I spoke above about killer apps and how I made a Sierpinski Pyramid Lamp. Another way to look at this is about "must haves". What "must haves" do Fab Labs offer? The Blair vision of making one third of your consumables in a Fab Lab may be achievable in the futue but not in the present. The Gershenfelds argue a strong point here: that one of the "must haves" is the sense of community attained through the meeting and making process (p. 77 and 81)

Fab literacy and the Fab Academy: Given that expert people are the main limiting factor for Fab Lab expansion the Fab Academy runs a 24 week course to train people. I’ve had a look at this course and find it quite daunting. There are only two places in Australia where you can complete this course:

Course details (look here to understand why I find it daunting):

Neil Gershenfeld calls this a distributed learning model (a hybrid between F2F and online learning, since part of the learning is done socially at a FabLab). Online MOOCs are notorious for their high drop out rates so it’s an improvement on that model.

Money: Sherry Lassiter from the Fab Foundation estimates that the average budget for launching a community fab lab and running it for 2 years is $250,000. (p. 76)

The Adelaide maker space has various sponsors, scroll down to the bottom of their home page. They have membership fees and fees for visits, inductions and workshops for those who aren’t members.

Neil Gershenfeld has some interesting discussion about who pays on page 42 of the book. He says that selling things made in the lab doesn't work partly because Fab Labs are not setup to make things at scale. He goes on to point out that enlightened government can utilise Fab Labs to help disadvantaged youth stay out of trouble, that is a better option than what happened in Alice Springs (lock 'em up and get more police).

Philosophy: The how, what and why all need to be addressed. "How to make (almost) anything" implies that users have open slather on the what. But in practice that depends on their expertise. Learning works best when the users make something that is personally or socially meaningful, the why. The how is mastery of all the hardware and software which is a big task. But to focus only on that would be a mistake.

Conclusions:
  1. How to make many interesting things is not as inspirational as How to make (almost) anything but is more realistic at this stage
  2. Third digital revolution and turning consumers into producers are probably over hyping the case
  3. Fab Labs / Maker Spaces can have many great outcomes: rapid prototyping, training ground in useful skills for all and joyful community development for starters
  4. The future is bright since the technology will continue to improve, become more user friendly and cheaper
  5. Australian Fab Labs / Maker Spaces need to tap more into the global movement by sharing their designs (open source philosophy)
FOOTNOTES:

I tend to agree with this amazon reviewer that all the Gershenfelds are wearing rose coloured glasses with their "third digital revolution" rhetoric. Note, however, that in a 2018 article they said that exponential growth of Fab Labs would die out by 2025:

If you want to be proselytized about fab labs, this is the book for you. A key premise is that an analogy of Moore's law will (or should?) apply to digital fabrication. This is based on a few years of doubling of the number of fab labs out there. Moore's original paper was based on 10 years of data but the trend there has continued for 50 years. If that holds for fabbing, yeah, it'll change the world bigtime. But the case has yet to be made. I liked that the Gershenfeld brothers wrote different chapters of the book, with quite different life experiences they bring different perspectives. But it's all based on that exponential premise, one that I'm quite skeptical about. The last of Neil's chapters envisions how fabbing might eventually get to assembling very tiny parts so you could really make anything, but this is almost laughably sketchy and technically infeasible. There's something called chemistry that Neil doesn't seem to be paying attention to. Still, fabbing is a fascinating new technology with lots of possibilities and this book will give you a good feel for how it's affecting some people's lives. There are some good stories mixed in with the questionable extrapolation of trends.