posts_

A Weather Station, Two Laptops and a Lollipop

My 12-year-old wanted to build a weather station. So we did the responsible thing and looked at the most expensive sensors we could find โ€” there are ultrasonic wind meters out there for a thousand dollars โ€” and then we looked at what was already in the house. A micro:bit, an Arduino, a small TFT screen, and a plastic food container.

The food container is now cable-tied to a stake in the garden, in the spot he picked after trying it in most of the others.

Letting the Robot Rewrite the Past

There’s a particular kind of vertigo that comes from watching an AI agent read eight years of your own writing back to you. Not summarise it โ€” reconstitute it, line by line, into a new home, complete with the typos you’d forgotten you made.

I didn’t plan this. Someone mentioned the old EndGame Medium posts still existed somewhere, half-remembered, the way old projects do โ€” and the next thing I knew I’d pointed an agent at a Medium export and asked it to bring them back to life. Which it did. All 18 of them. Including one where the entire body text is nine words long (turns out I once published a Medium post that was, verbatim, just “Thanks for this, the book was a great read!” โ€” we quietly agreed to retire that one).

Bringing Act of Kindness Back From the Dead

Bringing Act of Kindness Back From the Dead

Not every project here started as chaotic neutral energy from scratch. This one has history.

The Waza Days

Back when I was CTO at Endgame, we ran Waza projects โ€” internal ideas people got to build just because they wanted to. Act of Kindness was one of mine: a dead-simple daily email with one small, specific act of kindness in it. Nothing fancy, no growth hacking, just a nudge to do something decent before your coffee got cold.

I Built a Terminal Fortune Teller That Predicts Your Code's Future

The Idea

What if your code could tell its own fortune? What if every git commit, every TODO comment, every desperate Stack Overflow copy-paste was actually a cry for digital divination?

Enter the Terminal Fortune Teller - a retro terminal-style oracle that peers into your code’s future using ASCII art tarot cards and cryptic tech-themed predictions.

Because in 2025, we’ve achieved peak absurdity, and I’m here for it.

The Vision

I wanted to build something that combines:

Building a Haiku URL Shortener: A Saturday Coding Adventure


A note from the editor

this blog was written by Claude, some of the urls aren’t true, it got the date wrong when it first published, and it may have not have even got all the bugs that it fixed written down correctly.
but it works, with very little actual work from me.
what is most humorous is that the bugs were very much what i would expect to run against if I was writing by telling a developer what to do.

I Built a 3D Blender Clone in JavaScript and It's Actually Usable

Blender.js: A 3D Modeling App in Your Browser

Because apparently making a 1D Minecraft clone wasn’t enough chaos, I decided to build a 3D modeling application inspired by Blender. In JavaScript. In the browser. With full 3D manipulation.

The Challenge

Build a usable 3D modeling interface that can:

  1. Create cubes of any size in 3D space
  2. Select individual cubes with mouse clicks
  3. Move selected cubes around in all three dimensions
  4. Provide intuitive camera controls
  5. Actually be fun to use

The Features

  • ๐ŸŽจ Create Cubes: Adjustable size slider to create cubes from tiny to massive
  • ๐Ÿ–ฑ๏ธ Click to Select: Click any cube to select it (glowing outline shows selection)
  • โŒจ๏ธ Keyboard Movement: Arrow keys for XZ plane, Q/E for vertical movement
  • ๐ŸŽฎ Mouse Drag: Drag selected cubes directly in 3D space
  • ๐Ÿ“ท Orbit Camera: Click and drag background to rotate camera view
  • ๐ŸŽฏ Grid & Axes: Visual reference grid and axis helpers
  • ๐Ÿ—‘๏ธ Delete Cubes: Press Delete/Backspace to remove selected cube
  • ๐ŸŽจ Random Colors: Each cube gets a unique vibrant color

How It Works

Built with Three.js for WebGL rendering, the app uses raycasting for precise 3D object selection, orbit controls for smooth camera movement, and a custom transform system for intuitive object manipulation.

I Built a 1D Minecraft Web Explorer and It's Pure Chaos

One Block: Web Edition

So I had an idea. A completely ridiculous idea.

The Concept

You know that Minecraft “One Block” skyblock mode where you start on a single block and mine it repeatedly to get random items? What if we made that, but:

  1. It’s 1D (because why complicate things?)
  2. Instead of Minecraft items, you get random websites
  3. Pure JavaScript, no frameworks
  4. Maximum chaos energy

How It Works

  • Click the glowing block to “mine” it
  • Get a random Wikipedia page (for now)
  • That page becomes a new tile in your 1D chain
  • Keep mining to build an ever-growing chain of random internet discoveries
  • Click any tile to open that page

Why Though?

Because it’s weird and fun and explores the internet in a chaotic way. Remember when you’d just click random Wikipedia links and end up learning about something completely unexpected? This is that, but gamified.

Welcome to Civet Labs

Welcome to Civet Labs

Well, here we are. A personal website in 2025. How retro.

What is This Place?

Civet Labs is my (Andrew’s) personal corner of the internet for random experiments, tech tinkering, and whatever else strikes my fancy. No grand plan, no content strategyโ€”just pure chaotic neutral energy.

Think of it as a digital workshop where I:

  • Build random projects
  • Experiment with new tools (like this site, built with Claude Code)
  • Write about things I’m learning
  • Share experiments that might be interesting
  • Embrace the chaos

Why Hugo?

Because I wanted to learn how modern static site generators work, and Hugo seemed fast. Also wanted to see what AI-assisted development could do, so I built this whole thing with Claude Code.