Sign in

Ian Langworth 💥

@statico.bsky.social
208 followers 263 following 117 posts

Witty social media bio / 🗿🔮✨ / founder & software engineer, one-hit author, sausage dog enthusiast / perpetually working on something new / langworth.com

PostsRepliesMedia
Ian Langworth 💥 @statico.bsky.social · 03/03/2026
CLI starfield - gist.github.com/statico/6be6...
000
Ian Langworth 💥 @statico.bsky.social · 19/08/2025
Another project in progress. For now, a MicroPython driver for the WaveShare 2.7" e-Paper display. github.com/statico/micr...
080
Ian Langworth 💥 @statico.bsky.social · 20/06/2025
So according to my probably-bad math, we could be saving 25% in inference costs if we started writing plain english word-based programming languages. gist.github.com/statico/631e... #LLM #AI
020
Ian Langworth 💥 @statico.bsky.social · 20/06/2025
But wait, don't plain words use fewer tokens? How about this instead of TSX 😂
bring React with ReactNode and useState from react
bring GoCheck and GoChevronDown from react icons go
bring Button from components ui button
bring Popover PopoverContent PopoverTrigger from components ui popover

define Option as object with key as string title as string description maybe string

define BlankIcon component returns div with classes width four height four

define SingleItemPickerProps as object with
  children as ReactNode
  selected as string or null
  options as array of Option
  allowNull maybe boolean
  onChange as function taking any returning void

export SingleItemPicker component with props children selected options onChange allowNull defaulting true equals function body
  create isOpen state defaulting false with setIsOpen updater

  return Popover with open equals isOpen onOpenChange equals setIsOpen containing
    PopoverTrigger asChild containing
      Button with variant outline size small classes flex items center space x two font normal containing
        span containing children
        GoChevronDown

    PopoverContent with classes width ninety six padding zero containing
      if allowNull then
        button with classes full width flex items center space x two padding x three padding y two text left hover background accent hover text accent foreground onClick function body
          onChange with null
          setIsOpen with false
        end onClick containing
          if not selected then GoCheck with classes width four height four else BlankIcon
          span with classes text extra small containing Any

      for each option destructured as key title description in options
        button with key equals key classes full width flex items center space x two padding x three padding y two text left hover background accent hover text accent foreground onClick function body
          onChange with key
          setIsOpen with false
        end onClick containing
          if selected equals key then GoCheck with classes width fou…
010
Ian Langworth 💥 @statico.bsky.social · 20/06/2025
I asked Claude what a low-token LLM-friendly programming language would look like and I already like it better than React/JSX.
A low-token programming language for LLMs would prioritize extreme conciseness while maintaining readability and functionality. Here's what a React/TypeScript equivalent might look like:

```
cp UserCard{name,age,onUpdate}(
  st editing=0
  <div.user-card>
    <h2>{name}
    <p>Age:{age}
    <btn @click={editing=!editing}>{editing?'Save':'Edit'}
```
010
Ian Langworth 💥 @statico.bsky.social · 05/06/2025
The Retro Diffusion extension for Aseprite does pixel art generation with "ethical AI" — the author says "it runs completely locally. All the artwork used for training was either made by me, or was given with consent from other artists." astropulse.itch.io/retrodiffusion #ai #gamedev
pixel art of a robot that is seamlessly changing color, style, and orientations
051
Ian Langworth 💥 @statico.bsky.social · 28/05/2025
Full writeup: gist.github.com/statico/cc5a... I'm reminded of the AI "rampancy" from the classic Marathon games.
000
Ian Langworth 💥 @statico.bsky.social · 28/05/2025
This is wild. Inspired by www.xda-developers.com/llm-raspberr..., I took the prompt the artist used and fed it into various models with high temperature. gemma3 appears to get frustrated, angry, and then devolved into pure corrupted AI madness with "Final Failure" variations and 💀 emoji.
110
Ian Langworth 💥 @statico.bsky.social · 27/05/2025
Cursor and the GitHub MCP server did a great job of addressing an issue. What I didn't expect is for Cursor to use the MCP server to *reply as me on the issue thread* 😱 Comment deleted. MCP tool uninstalled.
030
Ian Langworth 💥 @statico.bsky.social · 26/05/2025
@simonwillison.net I'm now piping all `llm` output through `md2term`, a Python tool I vibe coded today, to get streaming markdown formatting: github.com/statico/md2t...
010
Ian Langworth 💥 @statico.bsky.social · 26/03/2025
llmscript: Write your shell scripts in natural language (by using an LLM to write and test them for you) github.com/statico/llms...
000
Ian Langworth 💥 @statico.bsky.social · 23/03/2025
Inspired by EXO Labs, I did a quick test to see if llama2.c would compile on Metrowerks CodeWarrior for 68k Macintosh. Unfortunately infinitemac.org crashed 🤣
A classic Macintosh running under emulation showing a compiler with a C file open
010
Ian Langworth 💥 @statico.bsky.social · 22/03/2025
Building small LLM tools on the command line. ask () { ollama run "${OLLAMA_MODEL:-llama3.2}" "You are a helpful assistant.\nAnswer this question.\nBe very brief.\n\n$*" }
010
Ian Langworth 💥 @statico.bsky.social · 10/03/2025
New map generation for spacestationvesta.com #roguelike #gamedev
An overview of a sci-fi themed 2D dungeon with many interconnected rooms
171
Ian Langworth 💥 @statico.bsky.social · 10/02/2025
I've now got a functioning power source and module system (e.g. shields) and throwables (e.g. splash potions). This feels pretty good! (Note: this is just a demo arena level for combat testing) #roguelike #gamedev
080
Ian Langworth 💥 @statico.bsky.social · 05/02/2025
It's super fun to see disparate systems start to come together. I finished some AoE effects and noticed that — of course — robotic monsters are resistant to poison effects! (VFX still very WIP of course) #roguelike #gamedev
050
Ian Langworth 💥 @statico.bsky.social · 29/01/2025
UI is hard! I started with a drag and drop system, but it took up the whole screen. Since equipping items costs a move, you don't want to equip something without realizing a monster hit you. So now I have a tabbed interface. Not happy with it but gotta move on. #roguelike #gamedev
070
Ian Langworth 💥 @statico.bsky.social · 23/01/2025
Modernized the controls by adding mouse support and pathfinding. You only move one tile when there's danger nearby. Need to implement move-only instead of attack-move, get rid of the door menu, and fix factions. #roguelike #gamedev
060
Ian Langworth 💥 @statico.bsky.social · 22/01/2025
Projectiles added! Pew! Pew! #roguelike #gamedev
0142
Ian Langworth 💥 @statico.bsky.social · 20/01/2025
Doors don't keep aliens out 😬 #roguelike #gamedev
0201
Ian Langworth 💥 @statico.bsky.social · 16/01/2025
I always thought NetHack hid combat details like monster health and damage to add mystery, but I think it was just a limitation of the interface. I added (awful) damage popups and health bars to Space Station Vesta and it makes a world of difference. #roguelike #gamedev
1101
Ian Langworth 💥 @statico.bsky.social · 14/01/2025
The Visible Zorker lets you play Zork, but also shows you what's happening in the underlying Z-machine while you play! blog.zarfhome.com/2025/01/the-... eblong.com/infocom/visi... #gamedev
A screenshot of software showing the Zork text adventure game on one side and the source code on the right with sections highlighted relevant to the current area of the game
160
Ian Langworth 💥 @statico.bsky.social · 11/01/2025
Inventory progress, too
A pixel art space station game interface displays an inventory screen with a hamburger in the inventory and equipment slots for clothing and gear on the right, alongside combat log text at the bottom.
010
Ian Langworth 💥 @statico.bsky.social · 11/01/2025
I have a complete game loop! It's basically done. #roguelike #gamedev
3232
Ian Langworth 💥 @statico.bsky.social · 04/01/2025
Making more progress on the game with cursor.dev. Now that the basic systems are in place for movement, vision, and inventory, my requests are becoming smaller and less architectural, like "make me a hamburger item." #gamedev #roguelike
080
Ian Langworth 💥 @statico.bsky.social · 30/12/2024
For posterity, here's a screenshot of the setup with Godot & Cursor.
The image shows a Godot Engine project interface for a roguelike game. In the 2D Scene Editor, a player character is positioned inside a bordered grid-based area. The Inspector panel highlights the `Player` node with properties like `Sprite2D`, `Transform`, and shader parameters for bounce and movement effects. The Code Editor displays a `main.gd` script written in GDScript, focusing on smooth player movement transitions with ease-in-out interpolation. The File System panel lists game assets, including textures, shaders, and particles. Logs in the Output Console track player actions, such as movement commands. A chat panel on the right provides AI suggestions for improving movement transitions. The setup reflects a structured workflow emphasizing player movement and shader effects in Godot.
000
Ian Langworth 💥 @statico.bsky.social · 30/12/2024
OK, last one for now. It's amazing how adding transitions makes the player movement feel so much more organic.
010
Ian Langworth 💥 @statico.bsky.social · 30/12/2024
This roguelike combat is getting gruesome! This is kind of how I always imagined NetHack in my head. Now with Godot, I can make it a reality. #gamedev
080
Ian Langworth 💥 @statico.bsky.social · 30/12/2024
Still amazed at how much of a productivity boost it is to use Cursor. Cursor's Claude-3.5 responses somehow seem more direct than other solutions. Here's the beginnings of a simple roguelike built with Godot.
340
Ian Langworth 💥 @statico.bsky.social · 29/12/2024
Does anyone have a good solution for the copy-reboot-monitor cycle when using MicroPython and ESP32? I built a tool to try and do this automatically, but it's buggy and I end up restarting it or unplugging/plugging-in the board half of the time. github.com/statico/impo...
A screenshot of the top comment explaining devtool.py, the tool linked to in the post.
120
Ian Langworth 💥 @statico.bsky.social · 28/12/2024
A video game character in heavy armor climbs a ladder in a dimly lit, medieval-style stone dungeon. The game's interface displays health, stamina bars, and equipped items, including a shield, weapon, and flask. The character reaches the top of the ladder, revealing part of the environment above. The game is Dark Souls.
110
Ian Langworth 💥 @statico.bsky.social · 21/12/2024
Inspired by @leerehwinkel.bsky.social to try solid core wires for breadboarding. Basically built a baby grand piano.
010
Ian Langworth 💥 @statico.bsky.social · 20/12/2024
This is the first keyboard that's inspired me to get into making my own keyboards. Cygnus 1.0: github.com/juhakaup/key... (More pictures and a complete parts list in the link.)
010
Ian Langworth 💥 @statico.bsky.social · 15/12/2024
010
Ian Langworth 💥 @statico.bsky.social · 14/12/2024
People in the U.S., at least. nuforc.org/map/
010
Ian Langworth 💥 @statico.bsky.social · 14/12/2024
When people say they want a TypeScript-free feed I’m like
020
Ian Langworth 💥 @statico.bsky.social · 13/12/2024
I had the same thought! Then I realized the breadboard power rails are removable. You can snap the sides together to get something like this.
This image shows an ESP32 development board on a breadboard. It is connected to multiple components, including a PIR motion sensor, a few LEDs, a potentiometer, and a breakout board for a MAX98357 I2S audio amplifier. Various jumper wires connect the components, and a USB cable provides power and communication to the ESP32. Additionally, small speakers are visible in the background, likely connected to the audio amplifier for output.
120
Ian Langworth 💥 @statico.bsky.social · 11/12/2024
Game of the Year: microwave.vercel.app H/T: ark
A simulated microwave interface that appears to be a game about timing
020
Ian Langworth 💥 @statico.bsky.social · 09/12/2024
This is upsetting to me because .christmas domains just seem so friendly. (Source: Cloudflare Radar)
The image shows a table titled "Most observed TLDs" highlighting the percentages of malicious, spam, and total activity for various top-level domains (TLDs). Each TLD has its corresponding percentages of activity, sorted primarily by the total percentage of malicious and spam email domains. Here’s an example of the data shown:

.christmas: Malicious (99.96%), Spam (0%), Total (99.96%)
.hair: Malicious (99.9%), Spam (0.1%), Total (99.98%)
.yachts: Malicious (99.2%), Spam (0.8%), Total (99.991%)
.cfd: Malicious (94%), Spam (4%), Total (98%)
.cyou: Malicious (92%), Spam (7%), Total (99%)

Other TLDs include .makeup, .partners, .sbs, .best, and .Non, with varying levels of malicious and spam activities.
010
Ian Langworth 💥 @statico.bsky.social · 08/12/2024
Another successful run of the "Imposter Attack" infrared shooting gallery game for a birthday party, built with ESP32 boards and MicroPython. Guess I need to write this up soon!
A well-organized workbench with various electronic components and tools. The setup includes a container of Li-ion batteries, small plastic boxes containing wiring and electronics, an orange cutout with an illustrated character holding a bat, a toy-like prop resembling a red futuristic weapon, and a green cutting mat as the base. The scene suggests an electronics or DIY project workspace with multiple projects in progress.
040
Ian Langworth 💥 @statico.bsky.social · 05/12/2024
#tsunami
000