Ask HN: What are you building that's not AI related?

meander_water
4 days ago
145points
I don't have anything against AI, but HN (and everywhere else) seems to be drowning in AI atm.

Seems like every man and his dog is building an AI agent harness. And power to you (and your dog) if that's you.

But it would be refreshing to hear about some non AI related projects people are working on.

195 comments

Comments

paulmooreparks4 days ago
I'm building my own cloud (I actually typed claude instead of cloud there... wow). There's no IaaS or PaaS; it's much simpler. I wanted my own way of connecting to machines and the TCP services on those machines without having to install Tailscale (not allowed on a locked-down corporate PC) or pay for Azure or AWS or GCP or even Hetzner or Linode. I've got 10gbps fibre and a huge workstation at home, and I've got lots of laptops and VMs and other outboard stuff that I want to work in concert with that workstation, so I started building something I call Tela (Filipino for fabric; I was sitting in Ninoy Aquino International Airport waiting for a flight when I had the idea, and it's implemented as a network fabric).

https://github.com/paulmooreparks/tela

InfraScaler2 days ago
You are rebuilding tailscale but requiring a centralised hub. I did the same in 2016 (pre-tailscale?) https://web.archive.org/web/20160304013451/https://wormhole....

I am not sure WireGuard existed at the time, and I used SoftEther and based it all on doing outbound tunnels to TCP/443* to avoid firewall blocks in corporate networks.

You could explore full P2P by leveraging UDP hole punching: https://cloudnetworking.pro/firewall-bypass-series-1-2/ https://cloudnetworking.pro/firewall-bypass-encapsulating-tr...

(WireGuard may already do it, dunno)

Also, fun fact, tela is also Spanish for fabric. Given the Filipino history, I guess it comes from there.

* I know I know, TCP in TCP is a bad idea https://cloudnetworking.pro/tcp-over-tcp-is-a-bad-idea/

paulmooreparks2 days ago
Thanks! Yes, Tela already does UDP hole-punching. I made Tela because I wasn't allowed to install Tailscale on my new corporate laptop, and no other available solution seemed to tick the right boxes. It started as a simple way to RDP to my home workstation, but then I realised that if I could do that, I could finally pull my ad-hoc home cloud into one tool. The hub model is very much by design, for organisational purposes. The hole-punching feature gives me the P2P speed (and even STUN, if available). An upcoming version will allow hub-to-hub topologies.

It should have occurred to me that tela is also Spanish, since about every third word I hear in a Tagalog sentence seems to be of Spanish origin.

InfraScaler2 days ago
Does tela create an L3 network? if that's the case, what do you do to avoid IP addressing clashes? In Wormhole I decided by default to use CGNAT addressing (100.64.0.0/10)

I did not go too far unfortunately, so I did not face problems such as discoverability (do you have to know/remember all the IP addresses from the devices connected? DNS? etc).

paulmooreparks19 hours ago
No, it doesn't create an L3 like Tailscale. A client (a machine running the tela CLI) connects to an agent (a machine running telad) via a hub (a machine running telahubd), but once they connect they negotiate a P2P route if they can. That's all managed by Wireguard an gVisor. The remote service is forwarded to a port on localhost, so SSH to a VM somewhere else would just be ssh to, say, localhost:10022. I'm investigating a local DNS so that users can instead type `ssh paul@dev-vm` instead of `ssh -p 10022 paul@localhost`.
InfraScaler12 hours ago
Very nice!
kunley4 days ago
Working on an audio streaming platform powering an indy internet radio. Looks like Icecast & friends show its age and a similar product can be easily built with the functionality cast down to simply robust streaming & handling "timed playlists". I enjoy every bit of knowing exactly what happens in the code. It's not open source atm, but will be. It's in Go, is a pleasure to write and the deployment takes minimal amount of resources.

Other project is to continue a bit stalled progress of a configuration language BCL - add functions, more structures and fix some hidden scoping issues. Making languages is an endless fun. https://github.com/wkhere/bcl

azarai3 days ago
Was recently looking for such a streaming thing; just streaming from a set of MP3s in a folder, nothing fancy. The majority looked too complex, with too many moving parts, for my idea.

Found one in Go that might interest you too: GoFM. Although I dropped my idea for now, I'd love to see yours come to life, too.

kunley3 days ago
I started with this one:

https://medium.com/@icelain/a-guide-to-building-a-realtime-h...

And then, modified a lot. At some moment I will open it back. (Author's MIT license allowed closing it; I did it actually because I embedded a number of idiosyncrasies related to the radio service that shouldn't be disclosed; but with some amount of work it can be divided into an open and closed part).

The broadcasting skeleton from that original blog/github project is good, though! It might work for your case.

Please keep in mind it's better to stream AAC than MP3. Basically any format you'd probably want to use can be converted to AAC with ffmpeg.

AAC has a simple frame format and it's easy to decipher it; I use it to always send full frames, even when one would want to skip to the next song - by doing that the client behaves more smoothly.

azarai3 days ago
Thank you for the pointers.
skor4 days ago
A programming language to hack music, and anything else really https://github.com/audion-lang/audion

The idea came after I finished a permanent piece for a museum using MaxMsp and python. I always had this thought in the back of my mind that "I could express this so much easier in a few lines of code.."

here's the language spec: https://github.com/audion-lang/audion/blob/main/docs/LANGUAG...

I really liked how objects came out, I don't think it needs any more since I can do object composition.

There are some nice functions to generate rhythms and melodies with combinatorics, see src/sequences.rs and melodies.rs

Its a WIP but you can use it now to create music with whatever you want: hardware/daws/supercollider

supercollider is tightly integrated but not required. I havent had time to develop userland libraries yet but I'm working on it

adrianhon4 days ago
My friend and I are building Strandfall, a highly physical outdoor larp (live action role playing game) that uses custom spatial computers: https://strandfall.com

Players are survivors of a global disaster that has unleashed mysterious, deadly storms. For three hours, they investigate the origin of the storms and make fateful decisions about their future as individuals and as a community.

We received Immersive Arts funding, which means we can run it in Edinburgh later this year. Here's an excerpt from our 2025 grant application about exactly what those are:

--

Our “storm sensors” are novel spatial computers designed for outdoor usage over long distances. They will house ePaper displays, LoRa (long range) radios, accelerometers, gyroscopes, and GPS chips in a 3D-printed enclosure to provide a low-tech way to augment the reality of the park. These computers will be cheaper, more rugged, longer-lived, and more capable than smartphones, deployable to locations with zero cellular service and no battery charging options.

The sensors will be mounted on top of camera tripods for deployment. Runners will carry them through the park, then position and aim them in the correct direction, as co-ordinated by “operators” using walkie talkies. This will let players feel like they are really setting up important equipment, scanning historical sites for clues (like surveyors), and establishing laser communication links. Lacking colourful touchscreens, the sensors will be less distracting for runners, helping them focus on their surroundings. Essentially, they are a highly tactile and deeply realistic way of immersing players in a post-apocalyptic setting, since such devices – not smartphones – are the most likely to be used.

conorcleary3 days ago
this is totally not going to cause spontaneous reports to authorities about suspicious _insert anything here_ and ultimately cost taxpayers more to respond to situations that otherwise wouldn't be happening.
adrianhon3 days ago
It might, if we weren't planning to put prominent stickers on the tripods making clear they're part of a larp, and also getting permission from the park and council and consulting with local parkgoers.
conorcleary3 days ago
yeah but scale it up so it's everywhere suddenly but without common understanding in the public sphere
ChoGGi3 days ago
And? Not as if governments don't already waste money?

I'd rather my tax dollars be wasted on people having some harmless fun compared to the other things they can be spent on.

boricj4 days ago
I'm working on ghidra-delinker-extension [1], which is a relocatable object file exporter for Ghidra.

The algorithms needed to slice up a Ghidra database into relocatable sections, and especially to recover relocations through analysis are really tricky to get right. My MIPS analyzer in particular is an eldritch horror due to several factors combining into a huge mess (branch delay slots, split HI16/LO16 relocations, code flow analysis, register graph dependency...).

The entire endeavor requires an unusual level of exacting precision to work and will produce some really exotic undefined behavior when it fails, but when it works you feel like a mechanic in a Mad Max universe, stripping programs for parts and building unholy chimeras from them, some examples I've linked in the readme. It has also led to a poster presentation to the SURE workshop at ACM CCS 2025 in Taiwan as a hobbyist, an absolutely insane story.

[1] https://github.com/boricj/ghidra-delinker-extension

KurSix3 days ago
Mad respect. I tried extracting a clean .o file out of a statically linked ELF once, and it's an absolute nightmare. How are you handling switch tables and indirect jumps? Without dynamic analysis, it's sometimes physically impossible to figure out what a register is actually pointing to
boricj3 days ago
I have analyzers that resynthesize relocations from the contents of the Ghidra database, no custom annotations required. They evaluate relocation candidate spots through primary references and pointers/instructions and emit warnings if the math doesn't check out.

It does require a reasonably accurate Ghidra database to work properly, but I've had users delink megabytes of code and data from a program successfully (as in, relinking it at a different address results in a functionally identical executable) once they've cleaned it up. The accuracy warning in the readme is mostly because it's really complicated to describe exactly what inaccuracies you can get away with, there's a fair amount of wiggle room in reality as long as you know what you're doing.

ragebol4 days ago
Building a bouldering wall at home, for the kids.

A bunch of square panels with a grid pattern to mount hold on, with the panels hanging on french cleats (with a locking system, #TODO) so the panels are easily removable so I can hang something like planters on the wall as well with the same french cleats.

No AI, a bit of computers to draw things out in CAD, but otherwise just manual building stuff.

rationalist3 days ago
Pictures?
ragebol2 days ago
https://imgur.com/a/2TIye34 not much to see yet: square panels with a lot of M10 holes and edges (also the edges of the holes...) sealed. I just got the holds, bolts etc the other day. I sanded the panels & primed them for paint last night.

The larger panel is going to be a volume with a bit of a hang. Panels are all tough 18mm outdoor rated 'betonplex' with phenol? resin or the surfaces.

rationalist2 days ago
Cool, thanks for sharing! Don't forget maybe having some pads underneath for any falls :-)
ragebol2 days ago
Yeah, that table is going to be quite the natural selection filter I suppose. Crash pad is on the way.
the__alchemist3 days ago
I'm building OSS structural biology libraries in Rust (+ CUDA), and a GUI application that ties them together. It is kind of an integration of functionality traditionally in separate tools: Viewing, editing, therapeutic properties + pharmacokinetics, molecular dynamics etc.
yuppiepuppie4 days ago
Ive been working on the HN Arcade :) https://hnarcade.com

Its always fun to see what games people are building - and some of the lesser known ones are amazing!

Reebz3 days ago
I enjoyed this! Thanks for the index
taffydavid3 days ago
Nice!
recursivedoubts4 days ago
I am working towards a big new release of my web scripting language, hyperscript:

https://hyperscript.org

Hoping to release next Monday

BLanen2 days ago
Big fan.

Looking forward to (hopefully) Monday.

DamnInteresting3 days ago
I'm working on the next update of Omiword[1], an ongoing daily word game previously discussed on HN[2]. I'm building an alternate stand-alone app version with access to all of the archived puzzles. It's slow going since it's just one of many side-projects I like to work on, but that's the tinkerer's dilemma.

Yes, I know that [insert LLM here] could do a lot of that conversion for me in mere minutes. No thank you. I'm doing it, in part, for the doing.

[1] https://omiword.com

[2] https://news.ycombinator.com/item?id=43654350

__DrPangloss__yesterday
My wife loves these types of games and is currently deep in. The way her brain works she wants a reset button to load initial state to try a different approach. I saw on the announcement thread that you were planning to add one, but I can’t find it.
DamnInteresting5 hours ago
I'm happy she's enjoying the game! If you hit the Menu button on the top right, you should see a "reset puzzle" button in the lower right quadrant of the menu.