I’m extremely fortunate that my city’s utilities are not only provided through the city as an alternative to the incredibly poorly run PG&E system, but they have a STEAM oriented “exploration center” to entertain and educate about science, conservation, and environmentalism. The people who work there put on workshops about all kinds of things and are incredibly helpful, friendly, and enthusiastic. Right now they’re in the process of converting a section of their building into a makerspace and I couldn’t be more stoked.
If you are one of those “Just show me the recipe, I don’t need your life story” types, you can skim the table of contents to see what I’d recommend for various home/makerspaces at different levels/price points. If you don’t mind a short walk, I’ve got a few related things you might not hate reading.
- 1. Maker Tool Philosophy
- 2. Basic Home Repair Tools and Equipment.
- 3. Basic School / Craft Art Supplies.
- 4. Basic STEM / STEAM Stuff
- 5. Basic Tech Tools
- 6. Home Maker Tools
- 7. Industrial Fabrication Tools.
- 8. Things I wouldn't buy
I’m fortunate that we have been able to put together some of the basic tools for something of a “home makerspace.” Even so, I’m super psyched about there being a makerspace within biking distance of my house. It’s got me thinking – how would I build out a makerspace? I think my design philosophy would be “tools before tech.” I do have a vinyl cutter, but before that I cut things by hand with an exacto knife.1 I have a laser cutter, but before that I cut things with a hacksaw. I have a 3D printer, but before that I would just cludge stuff together.
If going to Maker Faire has taught me anything, it’s that you don’t need high tech gadgets to make incredible things – you’ve just got to be resourceful and scrappy. Then again, if you’ve got a budget… well, sometimes it’s nice to be able learn new skills, try out new machines, explore new possibilities, and make things easier/faster/with less waste.
I like the process of making things with my hands. It was a point of pride that my ukulele was almost 100% made with hand tools.2 But, as much as I like making things with my hands, many times I am less invested in the journey than I am in acquiring the thing I’m making or just making it as polished / easy to make as possible. I like making my own heat transfer vinyl t-shirts, but cutting out a very simple SVG design by hand would be 30-45 minutes of concentrated painstaking effort versus 2 minutes of craft cutter time.
One of the reasons for putting together this list is because too often I see slick marketing convince schools/classrooms/makerspaces/libraries to buy expensive, less useful, or hyper-niche products.
I thought to search up some other maker space tool lists after I was mostly done with this list. I found these two links to be fairly reasonable. The others ones I found seemed to be more about trying to sell stuff to libraries and schools, going for flashy things, rather than things that are actually likely to be useful.
-
Maker Tool Philosophy
-
I tend to avoid Unitaskers, large, expensive Tools
-

These have just the one use I tend to follow the 80/20 Pareto Principle3 and avoid unitaskers, especially when they’re bulky or expensive. The formulation of this rule I prefer is that you can typically get 80% of the results you want for 20% of the cost and effort.4 I don’t want something I use once a year taking up space in my life. If the tool is expensive, it has be able to save me sufficient time / energy / resources versus making by other means. If the tool is bulky or expensive, I’m probably better off just renting access to the tool or outsourcing when needed.5
-
-
Support Local Makerspaces
-

Woodland Public Library – and their SquareOne makerspace Your local library may have a makerspace. They might only have a sewing machine, 3D printer, and vinyl cutter, but using their services will help them keep or get new funding. If you’re in California and have a valid state issued ID, you can get a library card at any state library. One of the best, most organized, and most well equipped makerspaces I’ve ever visited is hidden up in Woodland, CA.
- If you don’t have a local library with a makerspace, your local community college probably has a kick-ass fablab/makerspace with every tool imaginable for the cost of a single unit class. I haven’t checked, but I suspect it could be even a remote-only semester long class, you could take it in anything, and they probably don’t have any kind of academic requirement that you do well to use the makerspace. While getting a student spot at a local college may not be feasible, many of these makerspaces will sell passes or conduct workshops. It is absolutely worth your time to visit and find out.
-

Inventopia in Davis, CA Did you know your local college almost certainly has some kind of maker-incubator within a stone’s throw? They’re generally people who just love making stuff and helping others, will train you to use their machines, have wide access times, and reasonable monthly fees for makers and co-working. If it’s local, check out my friends over at Inventopia in Davis, CA.
-
-
Before Buying: Borrow, Experiment, Make Do, Build
- I highly recommend experimenting or testing out a tool before making a big investment. Before getting a vinyl cutter, I cut heat transfer vinyl using a craft knife. If I hated the hobby or result, I would have been out some time and a few ruined t-shirts. Since I enjoyed it, it was worth investing in an inexpensive machine.
- If I can do without a much more expensive option by making the tool / equipment or making do without, I will. I can’t justify buying a Chomp Saw for cardboard crafts for $300 when I could build one for about $30. Similarly, I can’t just justify $1-2k for a vacuum former when I can build a small one for $40 or a big one for not a lot more. Thus, I’ll probably never get an embroidery machine, if I can make do with the attachment below.
-
-
Basic Home Repair Tools and Equipment.
- While you could go with Harbor Freight for some these things, but if you plan on keeping them for any length of time, just get something good. If interested in a short anecdote, check this footnote.6 I’m not knocking Harbor Freight either. They have super inexpensive and serviceable rubber gloves, foam knee pads, and foam floor mats that have lots of uses. I just wouldn’t go with Harbor Freight for tools that would get frequent use. Honestly, buying lunch for a neighbor who would loan you a specific tool is a better investment in friendship, community, money, without taking up any storage space.7
- Hand saw, hacksaw, hacksaw blades, coping saw, coping saw blades.
- Utility knife, razor blades.
- Hammer, wrenches, screwdrivers, hex wrenches.
- Wire cutters, wire strippers, pliers.
- Measuring tape, yard / meter sticks.
- Vise, duck tape, electrical tape, wood glue, zip ties, Machine oil, WD-40.
- Needles, threads, old clothing, scraps of fabric.
-
Basic School / Craft Art Supplies.
- Regular batteries (9V, AAA, AA) and coin cell batteries.
- Crayons, color pencils. I’d probably not keep markers on hand – they just go dry too quickly.
- Pipe cleaners, googly eyes, craft foam, construction paper, paints (probably tempera then acrylic), paint brushes.
- So much cardboard.
- Scissors.
- Masking tape, blue painter’s tape, scotch tape, white glue, glue sticks.
-
Basic STEM / STEAM Stuff
- Once you’ve got some basic tools and willing to get your hands dirty, you’re pretty much set. Research, experimenting, hardware stores, thrifting, and even dumpster diving can get you a lot of what you need to build many things. However, if you’re going to lean into more “STEAM” kinds of activities… a drawer full of microcontrollers, components, chips, wires, components, motors, magnets, and even broken things goes a long way.
- For basic STEAM educational kits, I highly recommend my friends over at BrownDogGadgets. My local library / utility system uses their kits all the time , the kits are always well put together, well documented, and they’re always a hit. Their various solar powered, wearables, maker tape, and MicroBit kits are great.
- After some intro-level electronics, it makes sense to spend a few dozen dollars to pick up piles of LED’s8 , coin cell battery holders, and conductive thread and you’re basically into making wearables. 9
- A few words about conductive metallic tape. You can find copper tape anywhere online, but it might not have conductive adhesive unless you buy it from a retailer you trust.10 While, aluminum tape is incredibly inexpensive and works reasonably well, only comes in huge wide strips since it’s designed for HVAC and home repair situations, is not available with conductive adhesives, and you can’t solder to it. It’s big enough that I think you could probably design an entire circuit board into a wide strip of this tape. If you’re working with kids and want to make things easy on them, the BrownDogGadgets “Maker Tape” is reasonably priced, easy to tear by hand, has conductive adhesive, and since it is made with nylon can take tons of flexing abuse which could fatigue a metallic tape. Maker Tape is only slightly more expensive than copper tape, but worth keeping on hand, especially for wearables/crafting/teaching environments. None of these will break the bank, all have good applications, and there are some interesting ways to combine them, so its worth having all three on hand.
- For mid-level programming with drag-and-drop programs and then easy to use MicroPython/CircuitPython, I would highly recommend the Adafruit Circuit Playground ecosystem. You basically cannot get a more beginner friendly, feature rich, easy to use system with this many sensors11 and output devices12 and communication possibilities13 for as little as a single Circuit Playground for $25.
- For those ready to graduate to things made with very small microcontroller chips, breadboards, and the ATTiny ecosystem, I really like my SparkFun Tiny AVR programmer. I still build very small things with it (simple timers and buzzers, mostly), but I can see why it’s discontinued. A small underpowered ATTiny85 will run about $2, can be a little bit of a hassle to program, only carries 8k of space, and will require fiddly wiring/soldering and additional components to be useful. The original Raspberry Pi Pico starts at $4, has tons of input/output pins broken out, power regulator, built-in USB connector, and 2MB of space. You’ll still need to solder things to it in order to make it do stuff, but 250x the space, more RAM and processing power, for $2 extra is a great deal. I’ve played with the WeMos D1 Mini ESP8266, but not gotten it to do a whole lot. For roughly $2 in small lot orders, you can get something that requires a little more tinkering but has 4MB of space and built-in wifi.
- I guess what I’m saying is that as technology improves, wifi/bluetooth added into smaller spaces, with more features, for less money – lots of makers will naturally end up with a drawer full of microcontrollers they’d be happy to donate to a good cause.
-
Basic Tech Tools
- These tools are things pretty much everyone could use, pretty much anyone could justify, and you could probably find at your local library or neighborhood.
-
Laminator. $35-$50
- I have an Amazon Basics laminator. It’s fine. It takes a little while to heat up, has only two settings, and will sometimes crumple small laminating items. That said, it was incredibly inexpensive 9 years ago and is still working. Laminating sheets and small card sized pouches are very inexpensive.
-
Laser printer. $180
- I will only buy Brother laser printers. Inkjets are a scam and I will never go back. A Brother laser printer is a workhorse that will print, scan, fax, and sip toner.
-
Sewing machine. $200+
- If I was starting out, I’d probably get whatever Singer or Brother sewing machine CostCo had at the time. I’m not an avid sewist, but I can make or mend a few things. If it can do a zigzag stitch, straight line, and handle a few folds of material, that’s all I’d need.
- Again, I’m not an avid sewist, but there are certain things that are so inexpensive and such a huge benefit, that their addition is a no-brainer.
- Extra bobbins, thread, and needles. A pack of 20 bobbins will probably be less than $5, just make sure they fit your machine. Get white, black, and perhaps a few other colors of thread. I like Gutterman nylon upholstery thread for tougher applications like bags and cotton thread for clothing. Bigger needles for tougher / thicker materials, thinner for more delicate materials, and replace them when they “feel” like they’re not sharp any more.
- A “free motion presser foot” or “free motion sewing foot” or “free motion quilting foot.” I don’t have an embroidery machine, think they’re super neat, wouldn’t mind learning how to use one, and, if I’m being honest, might use one perhaps once a year. However, I’m not going to spend $500-$7500 on one. A “free motion presser foot” attachment for your sewing machine, this very short Instagram video by @Riskthrift, and different colored thread are all you need to get probably +95% of the utility of an embroidery machine for about $10.
-
Vinyl cutter. $85+
- This isn’t an endorsement, but I bought a Monoprice craft cutter. I’ve been using it to make heat transfer vinyl t-shirts. It’s slightly finnicky, I’m not crazy about the software, but it works. This model is usually $250, but it goes on sale all the time, and I snapped it up when it hit $80. I’ve used it to cut heat transfer and sticker vinyl as well as cardstock for game boxes and it’s handled everything quite well.
- I haven’t used a CriCut, but for a little bit more than what I spent you can get something everyone is familiar with.
-
A wet/dry “buckethead” Shop Vacuum. $40
- Specifically, this particular “Buckethead” shop vac that attaches to any standard 5 gallon bucket. You can get buckets anywhere from free14 , to recycled15 , to free-ish16 , to inexpensive. The attachment used to be $25, but is now $37. Even so, you really can’t beat the price.
- And, as an added bonus, for the price of scrap wood or a few wooden dowels and some 3D printed parts, it can perform double-duty as a vacuum former!
-
Home Maker Tools
-
FDM / FFF 3D Printer. $500-$2,000
-
A word about 3D printers.
- It’s hard to go to a farmer’s market or craft fairs without seeing buckets of 3D printed knickknacks, dragons, keychains, etc. Yes, they can be a great way to churn out trinkets, but printing nonsense you downloaded off the internet is just the beginning.
- Access to a 3D printer is a complete game changer. The true strength of a 3D printer is in making it possible to build nearly anything you can design, irrespective of your tool set or skill level. Come up with some designs, iterate, and invent a new tool or product that solves a real problem. Build and give away prosthetic parts to help those in need or parts for PPE during a pandemic. Save millions of dollars replacing broken or worn parts with functional replicas for pennies. Use the parts to build other tools or robots to help solve other problems. I don’t think I’m exaggerating when I say that a sufficiently motivated person could save lives, iterate and invent, build a business, conduct scientific and/or medical research. Sure, people are selling Deadpool-dragon-keychains and Nerf gun parts. But, those hobbyists/entrepreneurs are the ones helping bring down the barriers and prices on equipment and supplies for everyone.
-
Type: FDM > Resin.
- Resin printers are neat, tend to have small build volumes, incredibly high resolution, but use toxic chemicals with toxic fumes and require more toxic chemicals to clean. I don’t want these in my home, let alone use them.
- I’ll stick to “FDM” or “FFF” (Fused deposition modeling or fused filament fabrication). They do produce VOC’s, particulates, and fumes when in use, and caution should always be taken, but they’ll just be easier to deal with overall. Filament is ubiquitous and inexpensive in a variety of colors. I stay away from glow in the dark because the strontium used to make it glow is very abrasive and will chew up a print nozzle quickly. White plastic filament made with titanium oxide has the same problem. I tend to print in gray/silver/black/colors most of the time anyhow.
-
Features. Slicer agnostic, enclosure, toolheads.
- The slicer is the software used to “slice” a 3D model into thin layers the 3D printer can lay down with molten plastic, one at a time. Some 3D printers will only accept models sliced by their software, their servers, their app, or their machine. These machines sometimes come with built-in cameras, print failure detection, automatic time lapse photos, remote job start-stop. While this can make them easier to use, they’re all different ways in which it can be misused or crippled later. I would stay away from any 3D printer that uses proprietary or cloud upload software. It’s just too easy for a 3D printer company to decide to brick their machines. A printer that accepts GCode and makes plastic things is all you need. In fact, a printer that requires an app is a significant downside for me.
- If I were purchasing for a makerspace, I would probably go for a printer with an enclosed build area over multiple print heads/tool heads. If I was getting one today for personal use, I’d opt for multiple material tool heads over an enclosure.
- I’m a fan of the Prusa printers, I own one, but when working on a tight budget, it’s really hard to argue with a Flashforge for ~1`/3 the price. If times were tight, I’d go with a Flashforge, Snapmaker, or one of the various vowel heavy alternatives that require a little more tinkering and elbow grease. If I had the budget for it or if I had to maintain a frequently used machine, I would (and have!) go with a Prusa.
-
-
Plywood CNC Cutter. $600
- I don’t have one yet – but I would personally start with a MaslowCNC for cutting full size sheets of plywood. I’ve met Bar Smith a few times at Maker Faire, supported at least one of his MaslowCNC Kickstarters, followed their forums,
- These can be used to make huge displays, furniture, benches and desks, signage, and piles more things. It takes a fair bit of space to set these up, even in the vertical orientation like the original MaslowCNC and even more floorspace to use it in the current horizontal setup system, but when not in use the entire system would fit into a small-ish moving box.
-
-
Industrial Fabrication Tools.
- These last two items would be fantastic to have – but
-
CNC Mill. $5,000 – $7,500
- I don’t have a table router-based CNC cutter – or the space to really even keep one, but I’ve heard good things about the X-Carve. A table CNC takes up a considerable amount of space, will need a vacuum attachment, filtering, exhaust, etc. I’m not ready for that kind of commitment.
-
Laser Cutter. $7500+
- I have a woefully underutilized Glowforge. I pledged their pseudo-crowdfunding-preorder, so I got it an early model for a lot cheaper than their current $7k price tag. (I’m not counting their cheaper laser diode line) Unless I had a very strong intended business use case, I probably wouldn’t buy a laser cutter today. They’re big, loud, require major venting / fume extraction, and I could probably cut whatever I needed for a few projects at a local makerspace.
-
Things I wouldn’t buy
- While working on this blog post, I initially searched to see what kinds of tools other people recommended for budding makerspaces. I was kind of horrified at the listicles like “5 makerspace must haves” and such, usually linking to their very own store.
- Sphero. They’re cute and kids could program them. I remember one of my kids’ teachers being extremely excited about getting a few Spheros for the kids to work with. I just think there are better and more cost effective ways to get kids into programming than a $200 rolling robot. If I had to teach coding to kids, I would absolutely start with the Adafruit CircuitPlayground mentioned above.
- Any Robot Kits. This isn’t just about the Sphero – I’d be wary of any robot kits. If the robot kit were something inexpensive you drop a microcontroller brain into, then maybe it would have a place in a classroom or makerspace. Robot kits don’t really have to be very expensive. If you have a 3D printer, two motors, and a drawer full of stuff, you could probably make a robot that does stuff for about $20/student.
- A single servo and basic microcontroller platform can do so much. Back during the pandemic the Exploratorium held a “MicroBitVirtualConcert” and my youngest build this little monocle top hat cat robot with a Circuit Playground and a single servo.
- MakerBot or Ultimaker 3D printers. I loved MakerBot for what it was back in the day – a scrappy start up that made open source 3D printers you could build and, above all, maintain yourself. I like to think I’m still friends with the founders of these companies. And, while I still love MakerBot for blazing the trail and clearing the way for other 3D printers, the current offerings are high on marketing and bear little resemblance to their open source roots. Honestly, I haven’t kept up with Ultimaker once they were acquired by Stratasys. Until that point they were still an open source darling and I still think their Cura slicing software is top notch. While the MakerBot website was scrubbed of open source resources long ago, the Ultimaker website still has these various things still available. I haven’t been able to confirm whether the Ultimaker is still open source, but given the purchase by Stratasys, I’m guessing it is not. If I’m not buying an open source machine, I’d go with something way cheaper that doesn’t require a ton of bloatware, apps, server based slicing, or proprietary slicing software.
- ChompSaw. I cant’ justify $300 for a machine that can be built from scrap plus a small $30 part and power drill that can be used as a drill whenever not used in the project.
What did I miss? What did I get wrong?
- By candle light. [↩]
- I drilled the holes for the tuning pegs with an electric drill, but then designed/3D printed a hand drill to help finish it. [↩]
- I didn’t realize until recently the original Pareto principle was about how 80% of the land in Italy was owned by 20% of the citizens. [↩]
- Actually, I aim for 85% results for 15% effort. [↩]
- I’ll never buy an RV for $50-200k and then pay to insure/store/maintain, when I could for a few thousand dollars whenever I wanted. Which will also be never. [↩]
- Many years ago my dad gave me his trusty utility knife. It was already old by the time he gave me this Stanley brand knife. Around the time we moved I had visited an Ace Hardware and saw they had a $1 bargain bin utility knife that looked very much like my own, so I picked it up to have an extra one on hand in a different area of the house. Like my trust knife, this one had an internal area where it could store extra blades – so that’s where I put some blades. You’re probably wondering – how bad could this utility knife be? The handle had a slight gap in it where one of the extra blades stuck out very slightly – by probably half a millimeter. It was never enough that it ever broke the skin but always enough to poke me and I hated it. If you’re going to use something more than a few times, get something good that will last you. Don’t cheap out and get a piece of crap that will scratch you. [↩]
- A word about hardware store bargain bins. I don’t know this to be true, but I strongly suspect the various Home Depot and Ace Hardware bargain bins are essentially sourced from the same cheap and/or low quality sources pitched to the store buyers at the most recent convention or the same Temu/AliExpress sources we can buy from. My additional suspicion is that this is basically the entirety of Harbor Freight’s stock comes almost exclusively from these kinds of sources. [↩]
- Different colors, sizes, shapes, and types – from single color, flashing colors, and “smart” / NeoPixel LED’s [↩]
- A note about conductive thread: I like the BrownDogGadgets.com brand. It wasn’t brittle, was easy to thread, and has seemed to hold up in my projects. I’ve heard other threads are less easy to work with or tend to break. [↩]
- For me, that would be BrownDogGadgets or Adafruit [↩]
- Touch, temperature, light, accelerometer [↩]
- LED’s, buzzers [↩]
- Some versions have IR emitter/detectors and some have Bluetooth capabilities [↩]
- Talk to your local bakeries and ask for their buckets. You’ll have to wash it out, but they’ll be free [↩]
- Laundry detergent or pool chemicals [↩]
- Harbor Freight frequently has coupons for free/cheap buckets [↩]
CopyLeft Trolls, AI, Lesser Evils of Autocorrect and OCR
This is likely to be a rambly kind of a post. I typed the blog title first, but, as Hector Barbosa might say, they’re more of what you’d call guidelines than actual titles. Fair warning – as at least one reader will point out, this may be some more AI bellybutton gazing.1
I basically stopped using Creative Commons pictures in my blog posts and websites a few years ago when I learned of some CopyLeft troll nonsense litigation. I did my best when using these pictures to provide proper attribution and even wrote a WordPress plugin to help others do the same.2 Learning that a picture from Flickr or posted for free use under Creative Commons could lead to abusive litigation and extortion was so disheartening that I pulled a lot of pictures from my various blogs and either left them with no images, broken images, or if they were very important to the post/page making something to go there. From that point, I generally trended towards using/making memes to add visual interest to the blog posts.
I was reminded of this after reading a well written post on Mastodon about various alternatives to using AI generated images in blog posts.3 While I don’t think these are all necessarily practical when it comes to finding an appropriate and aesthetically pleasing image to go along with a blog post, I thought this was a worthwhile and thought provoking suggestion.
I do like adding pictures because it adds a little bit of visual interest to what would otherwise be a wall of text. Many times, I will add a screenshot from OpenSCAD or a photo of a sketch / sketchbook page. And now, a short digression…
Someone far more pithy than I comment recently that twenty years ago regular people were sued for posting song lyrics, sharing MP3’s of music, and low quality movies, while these days people are becoming AI millionaires by shoveling the entire internet and the collected written works of the human race into machines.
…What should people opposed to AI slop do, then? Do we stop driving because of license plate scanners and stop going out in public because some asshole will be wearing Google Glass Goggles or Facebook Meta Glasses and feeding our information into facial recognition software? 45 I don’t share photos of myself or family on social media, but should we not store our photos in the cloud and avoid fun community events at the local library? Even writing this post, I’m unwillingly contributing the corpus that will be fed into the next version of an LLM.
I feel damned either way. If I don’t use any LLM, they will consume my writings and original pictures, use my original pictures to track me across the internet, sell me things or sell me to other things. If I do use an LLM it will do all of that plus train on my interactions.
What is the most defiant thing to do when this blog post is almost certainly going to be read by more web crawlers, spam robots, and LLM’s than humans? Should I only post new pictures to add visual interest to my posts at the expense of embedding even more meta data into each post? Is it more subversive to use an AI to generate a fitting copyright-free but soulless image that adds little new information to the algorithm’s endless hunger?
I don’t have answers to any of this.
As I was working yesterday another thought occurred to me. Where is the line between “software” and “LLM/AI”? I had just run optical character recognition on a large document to help figure out what was in it. All OCR is just pattern recognition, making trained “black box” guesses at what’s a given letter/word/pattern. I’ve never liked the auto-suggest “feature” of my phone’s texting app or gmail, but I like the auto-complete feature of LibreOffice when I start to type a date. I don’t mind when my text editor suggests the name of previously used variables and functions – it’s actually quite helpful.
Why am I comfortable with an heuristic’s OCR/autocompleting dates/autocompleting variable/function names, but I hate auto-suggesting messages? Perhaps because it’s no something I can turn off. I just know I find these kinds of “helpful suggestions” to be far more intrusive. Maybe I don’t mind these helpers in documents – but I don’t want them stepping the communications between myself and another human?
I don’t mind using an AI image generators for a stupid joke, but I hate seeing them in advertisements. I would never use an AI, local or otherwise, to write something to someone I loved, client, colleague, coworker – but I don’t mind it when I’m trying to wrap my mind around a new API, updating an old program when certain parts I’d written are now deprecated, or even writing something in a brand new language. It’s hard to tell if I’m justifying my uses or if there really is a decent use case for these things.
I guess I’m trying to come to terms with what kinds of AI/heuristic usages I like, am ambivalent towards, and those I hate – to better understand why I feel/think these ways.
- Hi Pete! [↩]
- More than twelve years ago now! [↩]
- TLDR: Take a picture, use Wikimedia Commons, screenshot from video game, lego diorama, use art supplies/image program to make a picture, stickers, pictures of a shelf. [↩]
- I read once that Meta had figured how to associate photos with people based upon the scratches and dirt on the lenses from photos that had been uploaded! [↩]
- This is why I generally rescale/blur/distort images before posting them online. But, I mean, how much time am I going to devote to this if I just want to share a quick picture of something? [↩]
OpenSCAD Shadow Boxes, Shadow Casting
A friend recently requested some less LLM-centric content. I’ve often said this blog is largely a lab notebook for various ideas or build log. It’s also merely a subset of the stuff swirling around in my brain than a dedication to any one topic. In any case, this post is dedicated to Pete.
I saw the above 3D printed box on Instagram. It looks like a wanted poster from the show “One Piece” of a character named Roronoa Zoro who carries three swords. The box contains a small post in the very center which seems very out of place – until the lights are dimmed and the light under the tip of the post is activated, revealing the light is blocked by the irregular edges of the box and casts a shadow of the silhouette of a figure holding three swords.
I’ve seen other implementations of this stereographic projection technique, but this was easily the coolest. The disparity between the size and shape of the box and shadow was almost startling.
My mind went wild with ideas upon seeing this box. One of the first ideas I had related to some fan-made movie posters by Kevin Collert many years ago.1 Imagine a small projector / box of arbitrary shape that could project that kind of silhouette behind you?
Yeah, a Tony Stark cosplay is neat… but what if you had an inconspicuous stereographic projector on your back that threw up a huge Iron Man shadow behind you!?
This could be extended in any number of ways. A Luke Skywalker cosplay that casts a Darth Vader shadow, Bruce Banner with a Hulk, etc, etc. But, also, what about a shadow of a familiar? A little dragon perched behind you. Or two thugs standing to your side like evil shadow henchmen? Or a crowd of zombies? The neat part about the box / lamp shown on Instagram was that the box didn’t look like it would display that kind shadow of a shadow. It just looked like a box with weird edges to it.
But, how did they do it?

I’m terrible at Blender. I’ve watched tutorials, tried to use it, but I just can’t wrap my feeble mind around it. My one string is the ability to make things in OpenSCAD. There are plenty of others who can make incredible things in it, but I’m no slouch. The code may not be pretty, but, well, as they say…

I started with a few assumptions.
- The light source has to be a single point. If there were multiple LED’s or filaments, it would create fuzzy / duplicate shadow edges. This should be possible with a single bright LED.
- The shadow is basically a cone. The edge of the shadow everywhere must be essentially some sort of a distorted cone, with the center point being the single point of light and the edges of the silhouette being the edge of the cone.
- The top edge of the box must be where the cone intersects with the box. If we decide how far off the wall the point of light is and we know where we want the shadow to be and where the shadow edges are, we should be able to intersect the shadow-cone with a thin walled box.

Creating the box itself shouldn’t be that big a deal. It’s an easy few lines of OpenSCAD. Creating the arbitrary “cone” was initially a much harder problem. Now, if the design I was trying to create was very simple or entirely convex, I could just use the OpenSCAD hull function around an SVG of the desired shadow and a very small sphere for the point of light. Since a simple shape would be uninteresting, I knew that hull wasn’t going to work. For a while I tried really hard to build a python program that would work by creating a polyhedron built out of the large SVG in the desired location and a very small SVG at the light point – and stitching the sides together programmatically. If you’ve ever worked with the OpenSCAD polyhedron functions, you know what a pain it is. If you don’t define the faces in a certain order or order the faces properly, you’ll end up with flipped faces and a pile of useless triangles. Even when the faces were properly built, the result ended up being difficult for OpenSCAD to render since it involved so many points converging on so few points and weird little overlaps. It was a mess.

You mean, all I have to do is RFTM? Apparently the linear_extrude function has a parameter called “scale” where you can define how small something should get as it is extruded. This is literally exactly what I needed.
I needed the shadow on the wall to be extruded off the wall as high as the point of light, but scaled down to that same point of light. But, would this work??? I haven’t printed it yet, but I believe it should.
From there, the next question is… does this OpenSCAD back-of-the-napkin sketch really work? Again, I’m not sure – I haven’t printed this for a few different reasons. If this design were printed “as is”, there would be a ton of overhangs and support material. I believe when you look at some of the pictures of the lamp lit up from the side, you can see the infill patterns on the sides. I can’t tell from these videos – but I suspect the easiest way to 3D print this box would be to do so in big flat panels. At the point you’re just trying to turn filament into 2D panels, why even bother printing it when you could lasercut it in a fraction of the time?
Let’s look at a few stills of the lamp.
Now, for my quick mockup I just used a simple square shape – but you can definitely see the same features as in the lamp in the video stills. The head, the crossed sword tips at the left, the jagged edges on the bottom right, the floating sword on the right.

Given that the theory feels intuitive and sound and that my quick mockup proof of concept seems to have the same structural features as the lamp in the video… this seems like it would work.
If this quick mockup works, then why restrict ourselves to simple boxes? For a mass produced thing you just want to stamp out, a simple box just makes sense. You could lasercut the panels, slap them together, and churn them out all day long. But, the thing that you use to block the light and form the shadow could be any arbitrary shape. It could be a triangle, star, or something far more complex. Here’s another quick sketch:
Obviously, this would be a support structure nightmare. But, for a one-off project and a cool enough idea, I think it could definitely work!
- His work has been stolen and slapped on so many dropshipped things that it was very difficult to find the original artist! [↩]
Inception and Exorcisms

I have found that if I have an idea, it will keep swirling around my brain unless I get it out in some way. In a way, I’m exorcising myself to prevent these ideas from plaguing me further. It’s not so bad having ideas pile up in my brain, it’s just that as long as they’re floating around, I’m not able to adequately devote sufficient brain cycles to other tasks. I don’t know the reason for this – but my sense is that my brain will keep returning to these ideas, circulating and cycling them, because I don’t want to forget about them – and it can only truly relax once it knows the idea is somewhere it can’t be lost / forgotten.
A while back I had suggested the only good way I had to deal with these recirculating ideas was to either act on them (building / blogging) or killing them (organizing / bookmarking). This wasn’t exactly true.
But, first, a digression. Many years ago Bre Pettis and Kio Stark created a “cult of done” manifesto, a short set of ideas about how to consider things “done,” written in 20 minutes since that’s all the time they had to write it. I think about this manifesto and this one particular poster implementation of it often.

I’m not sure what appeals to me so much about this manifesto. I don’t know that I agree with each element – but for something generated in 20 minutes, it’s pretty good. I guess the reason it comes back to my mind today, of all days, is that I happened to be looking back through my many blog posts with my eldest kiddo and was reminded of all the blogging I did here and at MakerBot.com and was reminded of those earlier, perhaps simpler and sillier, times.
Here’s how I actually exorcise / done-ify things:
- Build the idea
- Blog (and publish) the idea
- Bookmark the page and sort that bookmark
- Write the idea down in a note app
- Write it down or sketch it in a notebook / sketchbook
- Send the idea to someone
Sometimes I can accidentally let years go by without talking to a friend. It’s not a good quality – but at least I’m able to recognize this personality trait. My way of keeping in touch with people is that when I see something that reminds me of them, I’ll send it to them. This isn’t so unusual … but sometimes I do this same thing with a slightly less pure motive. Sometimes when I have an idea or see something interesting, I don’t just store it in a bookmark or by writing it down… I consciously make an effort to store it in a friend’s brain.
Yes, I’m sharing a thing with a friend as a way to connect, offer something to them that I know they’ll be interested in, perhaps to give us something to talk about, but I admit that I also consciously share it with them in order to further store the same data within their brain and in our communication channels.1 Again, not my finest quality, but it’s not an entirely selfish quality either.2 The hilarious thing about this last way to done-ify something is that you could even store the data in the brain of someone you hated! Heck, you could rage-tweet it to someone. And, the stronger your reaction to them, the stronger the connection you would have to the memory of the thing!
Taking all that into consideration, here’s how I probably actually exorcise / done-ify things:
- Implement: Build the idea
- Externalize: Publish the idea
- Memorialize: Write down, bookmark, sketch,
- Incept: Store the idea in someone else’s brain
Weakness

I just wrote a very large blog post about kicking frontier LLM’s to the curb. The problem I’m facing is that running a useful scale LLM on my extremely modest PC is not just slow, it’s difficult. I don’t mind waiting 30 minutes or even an hour for it to work on a small piece of a bigger project, but to come back after an hour and realize it made things worse or stopped after 5 minutes means I have figure out how to kick start it.1
My PC isn’t fancy. It’s about 3 years old, has 32GB of RAM of which 16 GB is “shared VRAM”, meaning that it’s basically using half of it’s RAM as if it were VRAM. The result is a machine that’s decent for most work tasks2 but would have poor performance for games, video editing, big 3D model rendering / editing, and… LLM use. If I had unlimited time and patience, I could probably flog Qwen 3.5 9B with a 4-bit quantization into working well enough over a long enough timeline using my current PC.
I’ve looked into what it would cost to either build a stand-alone system or an entire secondary machine just for these kinds of tasks plus home LLM inference use. None of these options are particularly attractive at this time. Single board computers like the Raspberry Pi, Orange Pi, Jetson Nano and others would probably cost in the range of $500 and probably not crack 5 tokens per second. A GPU in an external enclosure would probably cost around $700 for 16GB and could possibly run up to 40 tokens per second. However, it would probably be kinda loud and take up desk space. A Mac Mini with 16 GB of unified memory could probably reach 10-15 tokens per second for $600 or so, which would be a lot slower than a full external GPU but also silent.

Honestly, none of these options are super attractive right now. I wouldn’t mind building a DIY rig with an SBC, but that’s a lot of money for not a lot of speed. I wouldn’t mind getting a Mac, but while it would likely be easier to set up than a Raspberry Pi and could run larger models, it wouldn’t work much faster than the Pi’s. The benefit of either a SBC or Mac Mini is I could set them up and put them in some unused corner of the house. Even if the GPU enclosure route is more power and speed for less money, it would need to be both loud and tied to my PC at all times.
None of these solutions are perfect, but pretty much all of them are some combination of expensive with a modest increase over current computing abilities.
Anyhow, I broke down and gave $10 to OpenRouter.ai.
This is not an endorsement – it’s just what I settled on using after poking at various other options. I’d looked into getting a plan through Alibaba’s Qwen, Kimi AI, Groq3 , Deepseek, and other LLM API aggregators like Togther.AI. OpenRouther.ai doesn’t charge for 50 daily API calls to a few of their “free” models, but if I carry a $10 credit balance I can have 1,000 calls per day and use more models. It was easy to kick the tires on their free plan, find it could work well enough for my purposes, and hand them $104 , and want to have access to 200x more API calls per day.
If I’m going to use an LLM and still determined to avoid OpenAI/ChatGPT, Anthropic/Claude, Elon/Grok, Google/Gemini, and their ilk, I have to turn to other models. I need something that’s better than modern baren StackOverflow but doesn’t need to be a giant evil LLM either. I’m having a fair bit of success with GPT-OSS 120B, MiniMax M2.5, and Qwen models.
I’m not doing anything groundbreaking. I’d restarted the virtual assistant project from scratch a few weeks ago and just working on getting the pieces operational. These skills aren’t anything wild – control over my PC’s media functions, modest automated regular downloading of files, communication over the Matrix protocol, etc. Even the wakeword, STT5 , and TTS6 systems aren’t very new. The only “new” thing I’m trying to do is tie these pieces together with a little bit of personality from an LLM.
Even without groundbreaking innovations, it’s interesting to see the “cost” of this inference. Yesterday I used approximately 12 million tokens, largely with GPT OSS 120B. Right now Claude is about $1/M tokens for Haiku, $3/M tokens for Sonnet, and $5/M tokens for Opus. 78 It looks like the going rate for GPT OSS 120B is probably about $0.04/M tokens. Having now used Claude models last month and GPT OSS now, I can say Haiku is very useful, but their other models aren’t 3x and 5x more useful. But, more importantly, there is no way Haiku is 25x better or that Opus is 125 times better than GPT OSS 120B. I don’t doubt these models might cost that much more to develop and run, but I’m just not seeing a jump utility that justifies these costs. I’ll admit that Haiku could probably have done the job in half the tokens, but even so it feels like there’s an upper limit to how useful an LLM could be. Or, rather, an upper limit to how useful and LLM could be to me.
I just read an interesting blog post / article specifically about Anthropic’s recent publicity blitz / stunt regarding their “Mythic” model. They are supposedly not releasing the model to the public because it is so smart and dangerous. Suffice it to say, the author makes a convincing case Anthropic’s claims are smoke and mirrors. One particular section struck a chord with me:
[W]hat am I getting for $25 per million input tokens that I cannot get from the open-weights ecosystem for more than two orders of magnitude less — roughly 227× cheaper, at eleven cents per million?
What, indeed?
As much as I like to fiddle with little gadgets, make and tinker with things, and even like the odd new shiny toy, I’m not a fan of shoving email/push notifications/cloud/crypto/NFT/blockchain/wifi/mesh/AI into every damn thing. I don’t need push notifications from my toaster, don’t need to preheat my oven before I get home, don’t want to have an AI analyze the mustard collection in my fridge and offer recipes.
If an LLM like GPT-OSS 120B released in August of 2025 can handle meaningful coding tasks swiftly, what more do regular people really need of an LLM? I’m not sure regular people really do. I do think large corporations, data brokers, and governments are probably already licking their lips at the idea of being able to build better profiles for consumers.91011
Perhaps one day I’ll try to bolt on some features that require some novel problem solving – like the ability to research things on the internet, check emails, draft email replies / queries, maybe even do some light scheduling or administrative work.
Software Development with LLMs- Series Plugin Test for Illustrative Purposes Only
- ChatGPT WordPress Plugins
- Coding with an LLM Sidekick
- Python Practice with an LLM
- Not Team AI
- Never Stop Breaking Up
- Weakness
- What a funny phrase “kick start”. I wonder if people mostly think of the crowdfunding platform rather than it’s original usage? [↩]
- It does get bogged down in very large PDF’s and spreadsheets [↩]
- NOT Grok. Groq is, as best as I understand them, a chip company that builds devices that can run inference on medium sized LLMs very quickly [↩]
- Plus credit card processing fees [↩]
- Speech to text [↩]
- Text to speech [↩]
- These are the “input” $/M token prices. Claude’s “output” generation $/M token prices are 5x the input cost. I’m just trying to keep their pricing plan information simple/streamlined for ease of reading and reference [↩]
- For the curious, ChatGPT’s pricing is $0.20/M tokens for their 5.4 nano model, 5.4 mini is $0.75/M tokens, and their flagship 5.4 model is $2.50/M tokens. [↩]
- I was going to say “users”, but really, the regular people here aren’t the “users” – the companies and governments are. I may very well need to start calling people “usees”. [↩]
- Use-ees? [↩]
- It sounds good in my head, but doesn’t seem to track properly when typed [↩]
Never Stop Breaking Up

About two months ago1 I signed up for a frontier LLM / AI subscription. It was the lowest plan at Anthropic so I could use Claude Code. I have a small website business2 that had a lot of stuff broken for a while. Although I had paid a few hundred dollars to a few different developers and even tried to hire several more to help, I wasn’t able to get anyone to help out or write a single line of code. It’s not that fixing the various code problems within a WordPress plugin are beyond me3 but more that tracking down and fixing a bazillion little problems would have been extremely time consuming4 and I just didn’t have the time.
Okay, enough justifications – I signed up for Anthropic at $20/month and honestly, it was fantastic. I have built out two or three big projects, easily a dozen medium projects, and I have no idea how many minor items. I could go from idea to description to implement so much faster than I could have alone, it’s not even funny. I’m confident I will keep using several of the things I’ve built for a very long time. The $20/month plan has it’s limitations – you have a limited amount of amorphous compute you can use during 5 hour stretches as well as a limited amount you can use during a weekly period. During “non-peak” hours you have more amorphous compute. I know you get a ton more compute with the $200/month plan, and honestly it’s almost certainly worth it to a full time developer, but I have so many misgivings about funding companies whose value proposition involves boiling oceans of drinking water, slurping up energy, enabling surveillance states, and allowing computers to make decisions in wartime.
Anyhow, I cancelled my subscription today just before it was about to renew for the second time. I’ve given Anthropic $40 of my money and gotten well more than that in value, so I’m fairly content with that transaction. But, now that my bigger projects are done I don’t have a need for continued use and can make due with either free options or roll code by hand.

I was tempted. I’m still tempted. If I paid several hundred dollars to real humans and received nothing, I could absolutely find a way to spend $240/year to enable me to build more complicated things faster. Even without these justifications5 I can absolutely afford $20/month.6 But, much like an evil ring that grants you some modest powers, I’m pretty sure the hidden costs just aren’t worth it.
I wondered when I started using a paid LLM again7 how long I would keep paying for it. I probably got value out of ChatGPT for about two or three months and after that I mostly kept it out of convenience, inertia, and make stupid pictures.8 I stopped using it because I wasn’t getting steady value out of it and I didn’t like continuing to fund OpenAI. Would I keep the Claude subscription for months longer than I was really using it – out of the convenience of having a frontier LLM on tap?
It didn’t hurt that it felt like Claude was steadily getting less intelligent and helpful.9 If I were a more paranoid or cyclical person I would believe cell phone manufacturers make their phones slow down just as the new flagship phones are released and frontier LLM companies dumb their models down when the newest pricier models come out.

As frugal as I am, I’m willing to pay for a frontier model because they’re incredibly helpful in realizing . However, I don’t want to support most of the frontier companies10 , their evil alliances11 , or side quests to block other AI companies from developing, devour the earth’s energon cubes, and boil the oceans.
I mean, why can’t I just do this on a small scale at home? Part of the problem is that even trying to get my hands on a very small PC is becoming unnecessarily expensive. At the time I’m writing this, the Raspberry Pi 5 16GB12 is going for $305, closing in on triple the initial MSRP of $120. Adding a case, some cables, the AI HAT+ 2, a heat sink / cooler, and beefier power supply would probably bring the cost to $600. I could buy a whole extra brand new desktop PC for that price. Or just use my current desktop to run an LLM in the background.
Which is what I’m doing literally right now.
I’m running LM Studio on my modest PC13 to serve up small LLMs to VS Code and Cline, to go through some small Python codebases to help me with some projects. After quite a lot of trial and error, I’ve basically settled on Qwen 3.5 9B using a 4-bit quantization as the best model I can run on my machine that can actually help. It is punishingly slow… but it does work. Something that might have taken a frontier model 5-10 seconds to do takes my machine probably an hour. Some light web research suggests that a frontier model is probably operating around 50-100 tokens per second while my machine can manage a blazing 1-2 tokens per second.

Since I’m rambling here anyhow… I’m going to backtrack slightly, just so I can give a little context. Sometimes I’ll find myself stuck in a cognitive loop of frustration and rabbit holes and decision paralysis. Writing these things down lets me excise exorcise14 these thought-demons at the cost of inflicting them upon my legions of loyal readers. I find jotting things down in a semi organized fashion means I don’t have to keep all the little pieces of ideas swirling around in my brain. I can finally relax, knowing they’ve been realized… somewhere. This is why I’ll jot down some sketches, create some scraps of code, or tuck a note away in Standard Notes.1516 Well, Working with frontier models makes me hate their rate limits and everything they stand for, which makes me want to build my own. Where was I?
Right. I’ve been swirling around the vortex of working with a frontier LLM’s, getting sick of paying and/or supporting them, try some free API resources, bump into their free tier limits, fall down a rabbit hole investigating what it would cost to build a machine of my own, get disgusted at the cost and figure I’ll just run them on my current machine, get slightly frustrated at the time it takes to do anything meaningful, and wonder about maybe throwing a few dollars at a frontier LLM … just to get this project finished. But, I don’t need a frontier LLM right now and I don’t need to get things done fast … especially when I should be doing the work I perform in exchange for the money I use to pay my mortgage.

In some ways, having a very slow LLM at my disposal is actually helpful. Yes, it does mean I have to listen my little PC’s fan hum to itself for an hour to accomplish something kinda basic. But, then again… it’s busy working on something, freeing me up to do other things.
Like write blog posts.

Plus, there are some possibly realistic uses for this kind of super low cost basic research / experimentation. I’ve been using this cobbled together system of various LLM’s, frontier and local, plus my modest Python skills, to try and create a semi-useful virtual assistant. I’ve connected to a few very small LLM’s so it can act as a human-ish interface for useful scripts17 , connected it over the Matrix protocol so I can talk to it securely from a phone even when I’m not home, and now that I know which kinds of models would work for some simple Python code generation, I could have a useful slow coding helper wherever I need it. Frankly, the main use of the coding assistant for me right now is building deterministic scripts that help me on a daily basis. There are other directions I could imagine taking this project from here. By adding a Meshtastic node to my home set up and carrying a small Meshtastic device with me, I could still stay in touch with my very slow and low bandwidth PC wherever I was. With a solar panel or power supply, I could even run all this entirely off grid. Going completely off grid isn’t something I’m super into, I like having easy access to broadband and grocery stores, but it sure would be neat and a good excuse to buy a few small Meshtastic devices.
Of course, once I start spinning around the idea of a Meshtastic node, I’ll want to bundle it with a Raspberry Pi 5…
Software Development with LLMs- Series Plugin Test for Illustrative Purposes Only
- ChatGPT WordPress Plugins
- Coding with an LLM Sidekick
- Python Practice with an LLM
- Not Team AI
- Never Stop Breaking Up
- Weakness
- You know, before our latest war and revelations AI companies were helping power the county’s military. [↩]
- Very boring [↩]
- I’m kinda decent at plugin dev for someone with zero training [↩]
- Cue meme of Don Draper yelling “That’s what the money is for!” [↩]
- Forgive the humble brag [↩]
- Just look at all these streaming services I pay for. [↩]
- I paid for ChatGPT in 2023 and 2024 [↩]
- I made several “make it more” style pictures… [↩]
- I was going to find a link to support this … sense – but there were honestly too many links to too many articles I didn’t want to vet. Suffice it to say the “vibe” I got is that as of April 2026, I’m not the only one who feels like Claude got stupider. My impression of the consensus is that Claude got too many users, resource usage went up, and quality went down. [↩]
- OpenAI, Anthropic, Grok/Twitter/Elon, Google/Evil, or even MicroSoft [↩]
- billionaires, oligarchs, fascists, surveillance states, Bezos, Musk, or certain president-grifters [↩]
- If you can find one! [↩]
- Bought long before RAM-pocalypse [↩]
- Sheesh. [↩]
- I used to use plain text files, then Google Keep, but you know what – this is service is great and it’s not Google or evil [↩]
- As far as I know [↩]
- Downloading files automatically, setting reminders, etc [↩]
A more practical EDC sling bag
Six months ago I purchased a new sling bag. I’d been procrastineering some designs for ages, bought lots of materials, but never actually made much. Then I saw this Ozark Trail bag from Walmart which someone was reviewing on Reddit. It didn’t seem too big, bulky, didn’t have any stupid features, had the right number of pockets and dividers, and it was $13. No matter how good I get at sewing, there is no way I could make something approaching this build quality for anything close to this price. I’d be much better off just making a few minor mods than making something from scratch.
This instantly became the bag I take everywhere. It holds my sunglasses, Kindle, phone, charger, tissue, hand sanitizer, bluetooth earbuds, masks, notepad, pens, a snack, a small water bottle, etc. It’s easy to swing forward to access, and it can be instantly switched to be worn over either shoulder. Like the Redditor who posted about it, I added some colored zipper pulls. Yesterday I took some gray paracord and wrapped the top handle too.1

Now, I don’t think I’ve been in any situation where a length of paracord would have been a life saver, but it’s nice to know it’s an option.
Custom Every Day Carry Bag- My Ultimate Bag
- Custom Every Day Carry (EDC) Bag
- Sewing Practice
- EDC Bag Materials, Designs, Etc
- Off the rack options for EDC bags
- A more practical EDC sling bag
- I have black, gray, and white paracord on hand. The white was so I could replace my shoelaces with paracord. 🙂 [↩]
Not Team AI
Look, I hate AI slop as much as the next person. My kiddo has been taking a college class where they’ve been delving to the ideas swirling around AI/LLM’s and from what I gather, the class is nearly incomprehensible. Just like my toaster, oven, toaster oven, fridge, and dryer don’t need wifi – neither does every damn thing need a thick coating of AI slop all over it.

I’ve been thinking about AI as a variation on the “super soldier serum” administered to Steve Rogers. Given to a good man, he can be better. Given to the Red Skull, well, he gets worse. Instead of only making things better, it seems to simply magnify the attributes of a thing.
I guess I’m struggling with the idea of whether it’s hypocritical of me to use AI for things when so often it just makes things worse. 1 And, I admit it is fairly self-serving to liken my uses to that of Steve Rogers and assign derogatory attributes to other uses.
Maybe it’s that I’m using AI/LLM’s to add micro improvements to my own life, rather than pushing it on others? After trying to work with free AI’s on some projects, I decided to pay $20 for a month of premium Claude Pro access. While using the free ones, I discovered:
- Claude’s free chat would lock a conversation after a certain context length if you uploaded any documents
- Gemini would time-gate a conversation by not letting you use it after a certain amount in a given period
- ChatGPT would time-gate a conversation if you uploaded anything, but would merely drop to a lower power model if you didn’t upload content and instead just worked through the chat interface
Overall, ChatGPT was more useful as long as I didn’t upload anything, and I could “make do” with the lower tier models. I’d paid for the premium tier of ChatGPT for a few months about two years ago and quickly became disillusioned with it. I found that it would start to chase it’s own tail, forgetting the thread of a conversation and project, randomly refactoring stable code, hallucinating functions, variables, and the names of functions and variables. It was more work to keep it on the rails than it was to simply just work on my project. I ended up largely shelving several projects as a result. I’d tried unsuccessfully to hire someone, I didn’t have the time to work on them by myself, and sure as hell didn’t have the bandwidth to baby sit2 an LLM.
However, working with various LLMs recently gave me a glimmer of hope. Perhaps they could be useful after all? Pouring over documentation, searching for answers, and consulting Reddit and StackOverflow were options, but they all had their special problems. In any case, these days all of these options (except documentation)3 were getting more difficult to use as people started abandoning public forums in favor of just asking an AI.

So, what have I been working on? Well, I signed up for Claude Pro on 02/09/2026 and in the just over three weeks since then:
- WordPress Plugin.
- An overhaul of a website’s registration system. I had been using a now-defunct WordPress plugin on a different website which was basically crumbling to pieces as WordPress and the world moved on. My needs were simple – so a few days of tinkering with Claude Pro got me something that … just worked for my purposes. It eliminated all spam robot signups in a way that nothing I’d tried before had been able to manage. There were a lot of moving pieces to this plugin, and there was certainly some growing pains, but it worked very well, very quickly. I have built plugins for WordPress before and could well do so again even without an AI, but the speed of the model to build all the trivial or tedious stuff is by definition super-human. Since the site’s ability to turn visitors into users into (hopefully) a few dollars is dependent upon the ease of registering, this one single change easily justified the $20 cost of using Pro. That $20 accelerated this from a project I’ve been putting off for literal years because I knew how long it would take me alone, to … solved in a few days.
- Python Assistant Script.
- As a friend was quick to remind me, I’m very late to the voice activated computer assistant / smart home party. I’d been working on a version of this with three free frontier LLM models, but it was too much, spread across too many platforms to be really cohesive or stay undamaged by converting parts among through these resources. Progress on this project has been slower than building a single WordPress plugin, but it has definitely been boosted. I regularly have to join online meetings where the information to join is sprinkled like breadcrumbs across multiple disparate pages on a given website, sometimes requiring a pseudo-registration process to reach. Doing all these things manually is a real headache when I haven’t had my morning coffee. And, let’s be honest, it’s way more fun to throw hours at a problem figuring out how to solve a problem than it is to actually face one’s problems. I would estimate that this feature will save me about 15 minutes once a week. Using the above XKCD logic, I’m time/energy/effort-positive if I could built this feature in less than 5 days. I probably got it working in a few hours. At the same time, I’ve been “bolting on” new features – a scheduler, time queries, weather queries, media control over my computer, with more features on the way.4
- A YouTube Management Chrome Plugin.
- I have this unfortunate habit of keeping too many tabs open. While this is bad enough, keeping a lot of YouTube tabs open will have a huge impact on system memory very quickly. I didn’t have the time at the moment to watch the videos, didn’t want to lose these videos, and didn’t want to go through the hassle of adding them to playlists. Instead, apparently I had enough time to build a Chrome plugin that would go through all of my tabs, bookmark each one to a special bookmark sub-folder, sort them into sub-folders, and then close those tabs. I don’t know that this will ever “save” me time, but it certainly is helping my system work better and keep my tab monster from getting too far out of control. However, I think I’m going to extend this plugin to be a little more practical. I think it could work for more than just YouTube videos to mass-close tabs, bookmarking them so they’re not lost, then sorting them into sub-folders.
- Email Entries for Work.
- My day job requires entry of data into a web portal. It’s a good content management system, but not great for data entry. It’s designed for humans to insert data, slowly, one entry at a time. The UI requires a couple of duplicate keystrokes and/or mouse clicks. While I deeply dislike having to do something stupid even once. I absolutely loathe having to do something stupid twice. It’s basically my kryptonite. Rather than enter emails into this system, which I fucking hate, I wrote a Python script to pull data from Outlook into a CSV, export the email data into an HTML file which reviews each email and suggests an entry code for each one, and once that data’s been cleaned/formatted, which I upload into a script that I wrote to work with my employer’s website, then begin the process of uploading each one. Since the data entry website has all kinds of dynamic elements and animated features, I can’t simply populate fields – I have to give each one time to load. Instead of just uploading an Excel/CSV sheet, I have to wait for each entry to play it’s little animations, time the data to populate, and then click each one manually to enter because the animations sometimes don’t work well. However, it’s a million times less painful than having to type all this bullshit in myself.
- Don’t worry, I don’t upload any of my email or data into any LLM. All the logic which pulls data out of my Outlook and builds things out of it runs on my local machine.
I never could have built so much, so fast, without the help of a frontier AI. None of the local LLM’s I’ve tried got even close and none of the free-level AI’s could maintain coherence long enough to help.
Claude Pro isn’t without it’s problems – I still had to monitor the code closely, keep it from forgetting certain key features, and deciding to completely refactor the code. At the $20 level, I can choose among several different models that are supposedly different levels of quality and consume higher amounts of tokens, and I’m limited to a certain amount of compute within a 4 hour window and limited to a certain amount each week. Even so, I’ve had more than enough compute for the tasks I’ve been doing. While these things have been super helpful to me… none of them are cutting edge research or huge trade secrets. In the chat interface you can switch language models, but doing so requires your conversation restart in a new conversation entirely. In Claude Code you can switch the models, but I feel like the LLM lost the thread a little when I did this.
I am a frugal man and tried to do this with free LLM access, but the benefit of more capable, more coherent models, with increased ability to share an entire code base (with the help of Claude Code + Github) for $20 has been an unbeatable deal. I’ve got a few ideas for some additional projects that could benefit from keeping the subscription going and will probably give it another month. I don’t know that I’d need year-round access though.
Software Development with LLMs- Series Plugin Test for Illustrative Purposes Only
- ChatGPT WordPress Plugins
- Coding with an LLM Sidekick
- Python Practice with an LLM
- Not Team AI
- Never Stop Breaking Up
- Weakness
- “Do I contradict myself? Very well then I contradict myself, I am large, I contain multitudes.” – Walt Whitman [↩]
- And, let’s be real – train [↩]
- RTFM, I guess [↩]
- Screenshots, giving me a daily briefing, etc [↩]
Building a Jarvis-inspired voice activated LLM powered virtual assistant

I’d like my computer to be smarter and more interactive and handle boring stuff for me and I’d also like to play around with some LLM / AI stuff… which brings me to this project. I’ve got a ton of basic things I’d love for it to do – manage lists, reminders, some Outlook functions, some media functions, and then also be able to interact with me – all via voice commands. Yes, you can do this with ChatGPT and probably others – but I am loathe to provide any outside resource with more of “me” (DNA, biometrics, voice, ambient noises, etc) than absolutely necessary. Plus, I’ve been tinkering with these little LLM’s for a while now and see just what I can build out of them and with their assistance.
I’m not great at Python1 , so I admittedly enlisted the help of some very large LLM’s. I started the main project in conjunction with ChatGPT, used Gemini to answer some basic questions about programming in Python syntax, etc, and Claude for random things. The reason for keeping my general questions in Gemini versus ChatGPT was so that I could not “pollute” the ChatGPT flow of discussions with irrelevant sidetracks. This was the same reason for separating out the Claude discussions too. I find Claude reasonably helpful for coding tasks, but the use limits are too restrictive.
My kiddo asked me how much of the code was written by these models versus my own code. I’d say the raw code was mostly written by LLM’s – but I’m able to tinker, debug, and… above all learn. I’d rather be the one writing the code from scratch, but I’m treating these LLM’s like water wings. I know I’m not keeping myself fully afloat – but I’m actually the one treading water, putting it all together, and learning how to do it myself. Also… said kiddo was interested in building one too – so I’m helping teach someone else manually, and learning more that way.2
Ingredients
As with many of projects, I started by testing the individual pieces to see if I could get things working. In order I started with validating individual pieces of the process:
- Could I get Python to record audio?
- Yep! Using import sounddevice, soundfile!
- Could I get Python to transcribe that audio?
- Could I get Python to use an API to run queries in LM Studio?
- Yep! Using the openai API, I could use python to send queries to LM Studio after an LLM had been loaded into memory
- Could I get Python to get my computer to respond to a “wakeword”?
- Yep! There’s another Python module for using “wakewords” using PocketSphinx. This was an interesting romp. I found that I had to really tinker with the data being sent to the Wakeword to be properly recognized and then fiddle with the timing to make sure what came after the wakeword was properly captured before being sent to the LLM. Otherwise, I ended up with “Jarvis, set a timer for 15 minutes” would become… “Jarvis, for 15 minutes” since the “Jarvis” would get picked up by the wakeword but the rest not caught in time to be processed by whisper.
- Can I get Python to verbally recite statements out loud?
- Yep! I used text to speech using Piper. However, this process took a while. One thing I learned was that you needed not just the voice model’s *.ONNX file, but the *.JSON file associated with it.
Until this point, I had wanted to try running LLM’s with the training wheels from LM Studio’s API. I really like the LM Studio program, but I don’t want to be dependent upon their service when I’m trying to roll my own LLM interface. Python can run LLM’s directly using “llama-cpp-python” – except that it will throw errors on the version of Python I was running (3.14) and was known to work with a prior version (3.11).
This lead me to learning about running “virtual environments” within Python so that I can keep both versions of Python on my computer, but basically run my code within a specific container tied to the version I need. Typing this command created the virtual environment within my project folder. The second command will “activate” that virtual environment.
- py -3.11 -m venv venv
- This created the virtual environment, locked to Python 3.11
- .venv\Scripts\activate
- This activates the virtual environment, so I can start working inside it
Back to work!

Building a Pipeline
This is where things really seemed to take off. I was able to disconnect my script from LM Studio and use Python to directly call the LLM’s I’ve downloaded. These were reasonably straightforward – and I was suddenly able to go from: Wakeword -> whisper transcribed LLM query -> LLM response -> Piper recited reply. Then, it was reasonably easy to have the script listen for certain words, and perform certain actions (setting timers was the first such instance).
Optimizations, Problems, Solutions

Building something that kind worked brought me to a new and interesting ideas, challenges, and problems:
- The original cobbled together process was something like: record audio, transcribe through Whisper, delete the recording, pass the transcribed statement to the LLM, give that statement to Piper, generate a new recording, play that recording. However, this process has some obvious “slop” where I’m making and deleting two temporary audio files. The solution was to find ways to feed the recording process directly into Whisper and feed Piper’s response directly to the speakers, cutting out the two audio files.
- I realized that I wanted the script to do more than just shove everything I have to say / ask into an LLM – to be really useful, the script would have to do more than just be a verbal interface for a basic LLM. This is where I started bolting on a few other things – like trying to call a very small LLM to try and parse the initial request to either:
- Something that can be easily accomplished by a Python script (such as setting a timer)
- Something that needed to be handled by a larger LLM (summarize, translate, explain)
- Something that maybe a small model could address easily (provide simple answer to a simple question)
- I ran into some problems at this point. I spent a lot of time trying to constrain a small LLM3 to figure out what the user wanted and assign labels/tasks accordingly. After a lot of fiddling, it turns out that an LLM is generally a “generative” model and it wants to “make” something. My trying to force it to make a choice among only a dozen “words”4 was really bumping into problems where it would have trouble choosing between two options, choose inconsistently, and sometimes just make up new keywords. Now, I could come up with a simple Python script which just did basic word-matching to sort the incoming phrases – but it seemed entirely counterproductive to build a Python word-matching process to help a tiny AI. I then tried building a small “decision tree” of multiple small LLM calls to properly sort between “easy Python script call” and “better call a bigger LLM to help understand what this guy is talking about” and quickly stopped. Again, my building a gigantic decision tree out of little LLM calls was proving to be a bigger task, adding latency and error with each call. I was hoping to use a small LLM to make the voice interaction with the computer simple and seamless and then pass bigger tasks to a larger LLM for handling, sprinkling in little verbal acknowledgements and pauses to help everything feel more natural. Instead I was spending too much time building ways to make a small LLM stupider, doing this repeatedly, and then still ending up with too much slop.
- And, frankly, it felt weird to try and lobotomize a small LLM into doing something as simple as “does the user’s request best fall into one of 12 categories?” Yes, small LLM’s can easily start to hallucinate, they can lose track of a conversation, make mistakes, etc. But, to constrain one so tightly that I’m telling it that it may only reply with one of 12 words feels… odd?

Over the last few days I’ve been tinkering with building an “intent classifier” or “intent encoder” to do the kind of automatic sorting I was trying to force an LLM to do. As I understand this process, you feed the classifier a bunch of example statements that have been pre-sorted into different “intent slugs.” The benefit of a classifier is that it can only reply with one of these “intent slugs” and will never produce anything else. It’s also way faster. Calling a small5 LLM with a sorting question could produce a sometimes reliable6 answer in about 0.2 ms, which is almost unnoticeable. Calling a classifier to sort should enable a 97% reliable result within 0.05 ms. This is so fast it is imperceptible.
I haven’t tried this yet. I’ve built up a pile of “examples” from largely synthetic data to feed into a classifier, produce an ONNX file7 , and try out. However, I wanted to pause at this juncture to write up what I’ve been working on. I say synthetic data because I didn’t hand write more than 3,000 examples on some 50 different intent slugs. I wrote a list of slugs, described what each one should be associated with, created a small set of examples, and then asked Gemini to produce reasonable sounding examples based on this information. 8 This list appeared pretty good – but needed to be manually edited and also tidied up. I wanted to remove most of the punctuation and adjust the ways numbers and statements showed up, because I’m simply not confident that Whisper will be able to accurately match “Add bananas to shopping list” to “Add bananas to ‘shopping list'” to something that the classifier will correctly interpret.
As I tinker with this project… I’m also looking at how I might be able to extend it into further projects. Not only might it be a great way to help me be more productive, but I might be able to create a really small version that could be put into a companion bot. A little companion bot with limited space, power, inputs, and abilities to emote could be far more lifelike, independent, and non-deterministic in it’s responses and actions.
Project Jarvis
- Yet!! [↩]
- Thanks Mr. Fenyman! [↩]
- Giving it limited context windows, limited tokens to use, highly restrictive system prompts [↩]
- Make timer, list timers, make a reminder, add to a list, recite a list, media buttons, etc [↩]
- ~1B parameter [↩]
- Let’s say 65% reliable [↩]
- Yes! Just like the voice models!! [↩]
- I know, more self-reflecting LLM garbage… [↩]
Minecraft Recovery Bundle
Yep, I’m an adult who enjoys playing Minecraft. Now that this is out of the way…
I enjoy playing in survival mode and building farms for various resources, carving out a base into a mountain side, collecting hard to find items, building something of a fortress to house my resources and “pets.” Sometimes my kids will join my “world” and help work with me on some project – or just want to do their own thing. When they do, I like having enough resources so they can build whatever it is they want. As I’m out exploring or gathering resources, sometimes I’ll end up in a bit of trouble or just be a few materials shy of accomplishing what I need. For that reason, I have a special bundle I keep in my ender chest stocked with the kinds of things I might need to help me with some common problems or, in a pinch, get me out of a real jam.
Here’s what I keep in that bundle along with the uses for those materials:
| # | Item | Uses |
| 1 | Hopper | Helping unload, sort things |
| 1 | Arrow | Using with bow enchanted with infinity |
| 1 | Crafting Table | Easy access to crafting |
| 1 | Ender Chest | Easy access to organized inventory |
| 1 | Chest | Chest or, with the shulker shells, a shulker box |
| 2 | Shulker Shell | Shulker box |
| 1 | String | Making another bundle |
| 3 | Leather | Bundle or ghast harness |
| 1 | Golden Apple | Healing |
| 1 | Nametag | Naming and preventing a mob from despawning |
| 1 | Anvil | Adding enchantments to equipment or using a nametag |
| 3 | Spruce Wood | Crafting many different things |
| 2 | Ice | Portable water |
| 1 | Gold Block | Crating gold boots to avoid piglin hassles |
| 3 | Glass | Water bottles to duplicate water, ghast harness |
| 2 | Trap Door | Entering end portals, crawl minding |
| 3 | Wool | Bed or ghast harness |
| 1 | Respawn Anchor | Creating a respawn location deep in the nether |
| 2 | Glowstone | Powering the respawn anchor |
| 1 | Lodestone | Marking a location for use with a compass |
| 1 | Lead | Leading or trapping a mob |
| 1 | Pointed Dripstone | Trap, mob farm, or duplicating water |
| 1 | Dripstone Block | Duplicating water, making mud or clay |
| 1 | Redstone Block | Compass |
| 4 | Iron Block | Iron golem, iron tools, sheers, flint and steel, tools |
| 1 | Amethyst Cluster | Spyglass, brush |
| 2 | Copper Block | Brush, copper golem |
| 1 | Feather | Brush |
| 1 | Pumpkin | Iron golem, snow golem, copper golem, carved pumpkin, pumpkin seeds |
| 2 | Snow Block | Snow golem |
| 1 | Dried Ghast | Flying safely |
| 1 | Flint | Flint and steel |
| 1 | Eye Of Ender | Ender chest |
| 1 | Bone Block | Speeding plant growth |
| 4 | Spruce | Growing large spruce tree |
| 4 | Dirt | Growing large spruce tree, food |
| 1 | Carrot | Food, growing food |
| 60 | items total |
The most common things I’ll use this bundle for are:
- Quickly get a hopper, ender chest, or make an extra bundle to help with inventory management
- The crafting table for quickly crafting something
- Using the one arrow with my “infinity bow“
A bundle lets me store items, but I have to pull out everything placed into the bundle after the desired item, which can make rooting around deep inside something of a hassle.
It’s extremely rare for me to dig any deeper into this particular bundle past the string and leather … but, if you’re stuck far away, across treacherous territory, deep in the nether, deep in a hole, underground, lost, or need to save a location or mob, this would be a very good pack to have around.
