Jet, Python and Barolo
Prehistoric Beads, Modern Challenges
Reproducing prehistoric jewellery is not something I get asked to do particularly often… but let’s start at the beginning.
One of my oldest friends from university is an archaeologist. She frequently works with the Haus der Museen in Olten, and at some point the question came up of how best to reproduce a Stone Age artefact so that visitors could actually handle it and play with it. She remembered that somewhere in her circle of friends was somebody who wielded a 3D printer. A few emails later, I had a commission to reproduce a 6,000-year-old necklace made of jet.
My knowledge of jet was limited. I knew that the material had survived into modern English in the expression “jet black”, but that was about the extent of it.
As it turns out, jet is fossilised wood, a close relative of lignite, or brown coal. Unlike most materials one associates with coal, it is relatively lightweight, can be carved quite easily, and takes a beautiful polish. It has been used for jewellery and ornaments since prehistoric times, and became particularly fashionable during the Victorian era, especially for mourning jewellery.
I had photographs of the necklace, and my first thought was that this would be fairly straightforward. The beads appeared to be about 10 mm across on a coarse piece of string — certainly small, but well within the capabilities of a modern 3D printer.

So I accepted.
I started with a few experiments, designing simple cylinders with holes through their centres in a CAD program and printing them. The results were not particularly convincing. They were too clean, too round, too regular, and looked like something that had come straight out of a box of mechanical parts. Even the surface texture was wrong. They were black, which was about the only thing they had in common with the originals.
I briefly considered modelling the individual beads by hand, but then remembered that I also had access to a 3D scanner. So another email went off to the museum, asking whether I could get access to the actual exhibit and run the scanner over it. Permission was duly granted.
At this point, I remembered a young friend of mine who is enthusiastic about just about anything technical, particularly 3D printing and design of models. I rang his mother, someone who has become very important in my life, to ask whether he might be interested in helping me scan some prehistoric jewellery. As it turned out, he was. And so was she.
Another email to the museum followed: “I’ll need to bring two assistants to help me scan. And to look around the museum.”
Apparently, that was not an issue either and they were welcome to join me.
A Rather Small Problem
So we showed up in Olten, armed with my camera, tripod, laptop and 3D scanner. I’d previously tried scanning a few of the mechanical parts masquerading as jet beads from my earlier experiments, and the results hadn’t been particularly encouraging. The black material didn’t reflect infrared light very well, and even those beads were at the lower end of what my scanner could comfortably resolve.
Then I saw the actual exhibit.
What I’d assumed were beads about 10 mm in diameter turned out to be tiny little discs, some barely 1 mm thick and less than half the diameter I’d expected.
My heart sank.
I’m not the type to declare defeat before even trying, though, so we pressed on. My museum contact fetched screwdrivers and suction cups so we could remove the protective glass in front of the exhibits and get a proper look at the necklace. I readied the scanner and ran a first pass over it.
To my surprise, it actually worked. There was enough room around the exhibit to scan it in two sweeps, and a point cloud resembling the necklace appeared on my screen. Turns out jet is considerably more cooperative when it comes to infrared scanning than glossy black PLA. Nevertheless, the first scan wasn’t particularly usable. I increased the scanner’s resolution and took another pass over the necklace. A few minutes later, I had a 3D model that already looked rather convincing.
Looked rather convincing. The only problem was, it wasn’t.
A familiar problem with 3D scans is that they can look excellent in full colour, but much of the apparent detail disappears as soon as you switch off the texture and examine the actual geometry. This was a particularly good example. The colour texture, captured by the scanner’s visible-light camera, showed the individual beads quite clearly. The underlying mesh, however, was one continuous mess of shapes running into one another, with the individual beads fused together. Not exactly what I needed to reproduce a necklace.

Another approach was needed. I had anticipated the possibility of scanner failure, so I took several close-up photographs of the necklace. This was considerably easier with the protective glass removed – there’s nothing quite like being able to get a macro lens properly close to your subject.
With that done, I packed up my gear and joined my young 3D-printing student and his mother, who had meanwhile enjoyed a private tour of the museum with the curator. Thank you for that – they enjoyed it very much!
Here’s a good place to slyly insert some subtle, unpaid promotion for the Haus der Museen: if you ever find yourself in the area, it’s well worth a visit. There’s plenty to discover beyond prehistoric jewellery. The taxidermy in particular is enormously impressive, and the staff are knowledgeable, enthusiastic and remarkably accommodating – even when confronted with visitors carrying 3D scanners and asking for display cases to be opened. Highly recommended.
What was supposed to be a quick coffee in the museum café turned into a long, fascinating conversation. My friend and I found ourselves discussing everything from museums and the Conservatoire des Arts et Métiers in Paris to Cray-2 supercomputers, the Antikythera mechanism, current political affairs, state surveillance, stacking single points of failure and the question of whether Aboriginal Tasmanians had lost the knowledge of making fire. Not exactly your average coffee break. The conversation continued on the drive home, with both of us occasionally marvelling at the leaps between subjects and the fact that neither of us seemed to suffer the slightest conversational whiplash. She once commented that we slip into hyper-flow regardless of the topic – and we both seem to revel in it.
The day continued in much the same pleasant fashion. On the way home, my friend mentioned that she had an office chair to assemble but wasn’t particularly looking forward to it. I offered to do it for her. She was planning a simple pasta dinner, but her son announced that he’d do the cooking instead – on the condition that I stayed for dinner. An offer I was hardly going to refuse. So we assembled the chair and I was subsequently treated to ramen and scrambled eggs. My friend apologised that it wasn’t exactly gourmet cuisine, but I assured her that it most certainly was, and that I wouldn’t have traded it for anything.
All in all, an all-round brilliant Friday. I still had a necklace to reproduce, though.
Enter the Staff
The next morning, as so often these days, I turned to my staff – i.e. the agentic software running partly on my own infrastructure and partly on commercial LLMs. I fed one of them the photographs and the unusable 3D scan for measurements, and asked it to generate print-ready models of the beads. After a considerable amount of back and forth, during which I kept complaining along the lines of “No, a bit more slant there, luv. This one looks like putty, do that again”, the poor thing apparently got fed up with me and simply threw a Python script at me. “Here, run that, set the parameters and do it yourself! I’m off to lunch!”
The script worked really quite well. I extended it a little to generate multiple beads on a single print plate, published it on my Forgejo server in case anyone else finds themselves unexpectedly commissioned to reproduce prehistoric jewellery, and turned my attention to printing. I’d already warned the curator that I might have to make the beads larger, owing to the limitations of 3D printing. But having a very occasional, barely noticeable tendency towards perfectionism (stop laughing, those of you who know me), I was determined to get them as close to their original size as possible.
For this, I replaced the usual 0.4 mm nozzle in my K2 Plus with a 0.2 mm one, better suited to fine detail. I set the layer height to a seemingly ridiculous 0.08 mm and loaded the printer with PolyTerra Charcoal Black matte PLA filament. Then I sent off a test print of ten beads, which would take all of fifteen minutes.
The beads from the first test print were slightly tricky to remove from the build plate, but once I’d managed that and threaded them onto a piece of silver wire to see the overall effect, I was blown away. I almost thought I was looking at the original necklace. All that tweaking of parameters had produced just the right sizes, irregularities and that slightly handmade appearance that had been so conspicuously absent from my first attempts.
I ran the script again, this time asking for 144 beads. This took a little longer to print, and threading the resulting little blighters onto the wire was bloody fiddly, but the finished necklace looked remarkably convincing. More importantly, it actually looked like something that could conceivably be worn as jewellery.

The curator had asked for about 70 beads. At the rate my printer is running at the moment, she’ll probably end up with about 700. That should be enough to equip several school classes with complete necklaces to examine, handle and perhaps even thread themselves. Education has always been close to my heart, and having spent a fair bit of my life teaching, I know how much difference it can make when people get to handle something rather than just look at pictures of it. If a little programming and 3D printing can help bring 6,000-year-old history quite literally into children’s hands – hey, sign me up!
Return on Investment
And why the Barolo? Well, at some stage during the preliminary discussions, I was asked what I’d charge for the reproductions. Given my fondness for education, the general financial pressure on cultural institutions and how much I enjoyed myself, it seemed almost indecent to charge the museum for such a fun day out. So I didn’t.
The curator, however, had other ideas. At the museum, she produced a bag, announced “I’ve heard you like wine…” and handed me three bottles of a very highly regarded Barolo. Apparently, my archaeologist friend had not only recommended my technical abilities, but had also seen fit to mention my fondness for a decent glass of wine.
And when I eventually open those bottles, I’ll certainly be remembering a lovely day spent with great friends, a technical challenge, and a few millimetres of prehistoric jewellery that turned out to be considerably more fun than your average museum commission has any right to be.
Not a bad return on an unpaid commission.