The best Hacker News stories from Show from the past day
Latest posts:
Show HN: I open-sourced my Steam game, 100% written in Lua, engine is also open
Homebrew engine <a href="https://github.com/willtobyte/carimbo" rel="nofollow">https://github.com/willtobyte/carimbo</a>
Show HN: Eyot, A programming language where the GPU is just another thread
Show HN: Curiosity – DIY 6" Newtonian Reflector Telescope
A DIY Newtonian reflector telescope with dobsonian mount. A fun to do hobby project taking us closer to the moon and beyond. A lot of plans ahead on how to make it much better and portable but this was the first time me and my friend implemented or rather built a telescope.<p>Have a look at what all we have captured.
Show HN: ANSI-Saver – A macOS Screensaver
Hi, I've been working on something I've been thinking for long time but since I had no experience with macOS screen savers I always posponed. Now thanks to Claude I was able to create a screensaver that scroll ANSI files while your computer is idle.<p>It allow to use local ANS files or packs directly from 16colo.rs.<p>Repo: <a href="https://github.com/lardissone/ansi-saver" rel="nofollow">https://github.com/lardissone/ansi-saver</a>
Show HN: Kula – Lightweight, self-contained Linux server monitoring tool
Zero dependencies. No external databases. Single binary. Just deploy and go. I needed something that would allow for real-time monitoring, and installation is as simple as dropping a single file and running it. That's exactly what Kula is. Kula is the Polish word for "ball," as in "crystal ball." The project is in constant development, but I'm already using it on multiple servers in production. It still has some rough edges and needs to mature, but I wanted to share it with the world now—perhaps someone else will find it useful and be willing to help me develop it by testing or providing feedback. Cheers! Github: <a href="https://github.com/c0m4r/kula" rel="nofollow">https://github.com/c0m4r/kula</a>
Show HN: Skir – like Protocol Buffer but better
Why I built Skir: <a href="https://medium.com/@gepheum/i-spent-15-years-with-protobuf-then-i-built-skir-9cf61cc65631" rel="nofollow">https://medium.com/@gepheum/i-spent-15-years-with-protobuf-t...</a><p>Quick start: npx skir init<p>All the config lives in one YML file.<p>Website: <a href="https://skir.build" rel="nofollow">https://skir.build</a><p>GitHub: <a href="https://github.com/gepheum/skir" rel="nofollow">https://github.com/gepheum/skir</a><p>Would love feedback especially from teams running mixed-language stacks.
Show HN: A weird thing that detects your pulse from the browser video
Show HN: µJS, a 5KB alternative to Htmx and Turbo with zero dependencies
I built µJS because I wanted AJAX navigation without the verbosity of HTMX or the overhead of Turbo.<p>It intercepts links and form submissions, fetches pages via AJAX, and swaps fragments of the DOM. Single <script> tag, one call to `mu.init()`. No build step, no dependencies.<p>Key features: patch mode (update multiple fragments in one request), SSE support, DOM morphing via idiomorph, View Transitions, prefetch on hover, polling, and full HTTP verb support on any element.<p>At ~5KB gzipped, it's smaller than HTMX (16KB) and Turbo (25KB), and works with any backend: PHP, Python, Go, Ruby, whatever.<p>Playground: <a href="https://mujs.org/playground" rel="nofollow">https://mujs.org/playground</a><p>Comparison with HTMX and Turbo: <a href="https://mujs.org/comparison" rel="nofollow">https://mujs.org/comparison</a><p>About the project creation, why and when: <a href="https://mujs.org/about" rel="nofollow">https://mujs.org/about</a><p>GitHub: <a href="https://github.com/Digicreon/muJS" rel="nofollow">https://github.com/Digicreon/muJS</a><p>Happy to discuss the project.
Show HN: I built a real-time OSINT dashboard pulling 15 live global feeds
Sup HN,<p>So I got tired of bouncing between Flightradar, MarineTraffic, and Twitter every time something kicked off globally, so I wrote a dashboard to aggregate it all locally. It’s called Shadowbroker.<p>I’ll admit I leaned way too hard into the "movie hacker" aesthetic for the UI, but the actual pipeline underneath is real. It pulls commercial/military ADS-B, the AIS WebSocket stream (about 25,000+ ships), N2YO satellite telemetry, and GDELT conflict data into a single MapLibre instance.<p>Getting this to run without melting my browser was the hardest part. I'm running this on a laptop with an i5 and an RTX 3050, and initially, dumping 30k+ moving GeoJSON features onto the map just crashed everything. I ended up having to write pretty aggressive viewport culling, debounce the state updates, and compress the FastAPI payloads by like 90% just to make it usable.<p>My favorite part is the signal layer—it actually calculates live GPS jamming zones by aggregating the real-time navigation degradation (NAC-P) of commercial flights overhead.<p>It’s Next.js and Python. I threw a quick-start script in the releases if you just want to spin it up, but the repo is open if you want to dig into the backend.<p>Let me know if my MapLibre implementation is terrible, I'm always looking for ways to optimize the rendering.
Show HN: Hormuz Crisis Dashboard Real-time shipping disruption tracker
Built this in ~4 hours with zero coding background. Tracks a few economy angles of the largest acute shipping disruption since WWII.
Show HN: Reconstruct any image using primitive shapes, runs in-browser via WASM
I built a browser-based port of fogleman/primitive — a Go CLI tool that approximates images using primitive shapes (triangles, ellipses, beziers, etc.) via a hill-climbing algorithm.
The original tool requires building from source and running from the terminal, which isn't exactly accessible. I compiled the core logic to WebAssembly so anyone can drop an image and watch it get reconstructed shape by shape, entirely client-side with no server involved.<p>Demo: <a href="https://primitive-playground.taiseiue.jp/" rel="nofollow">https://primitive-playground.taiseiue.jp/</a>
Source: <a href="https://github.com/taiseiue/primitive-playground" rel="nofollow">https://github.com/taiseiue/primitive-playground</a><p>Curious if anyone has ideas for shapes or features worth adding.
Show HN: A trainable, modular electronic nose for industrial use
Hi HN,<p>I’m part of the team building Sniphi.<p>Sniphi is a modular digital nose that uses gas sensors and machine-learning models to convert volatile organic compound (VOC) data into a machine-readable signal that can be integrated into existing QA, monitoring, or automation systems. The system is currently in an R&D phase, but already exists as working hardware and software and is being tested in real environments.<p>The project grew out of earlier collaborations with university researchers on gas sensors and odor classification. What we kept running into was a gap between promising lab results and systems that could actually be deployed, integrated, and maintained in real production environments.<p>One of our core goals was to avoid building a single-purpose device. The same hardware and software stack can be trained for different use cases by changing the training data and models, rather than the physical setup. In that sense, we think of it as a “universal” electronic nose: one platform, multiple smell-based tasks.<p>Some design principles we optimized for:<p>- Composable architecture: sensor ingestion, ML inference, and analytics are decoupled and exposed via APIs/events<p>- Deployment-first thinking: designed for rollout in factories and warehouses, not just controlled lab setups<p>- Cloud-backed operations: model management, monitoring, updates run on Azure, which makes it easier to integrate with existing industrial IT setups<p>- Trainable across use cases: the same platform can be retrained for different classification or monitoring tasks without redesigning the hardware<p>One public demo we show is classifying different coffee aromas, but that’s just a convenient example. In practice, we’re exploring use cases such as:<p>- Quality control and process monitoring<p>- Early detection of contamination or spoilage<p>- Continuous monitoring in large storage environments (e.g. detecting parasite-related grain contamination in warehouses)<p>Because this is a hardware system, there’s no simple way to try it over the internet. To make it concrete, we’ve shared:<p>- A short end-to-end demo video showing the system in action (YouTube)<p>- A technical overview of the architecture and deployment model: <a href="https://sniphi.com/" rel="nofollow">https://sniphi.com/</a><p>At this stage, we’re especially interested in feedback and conversations with people who:<p>- Have deployed physical sensors at scale<p>- Have run into problems that smell data <i>might</i> help with<p>- Are curious about piloting or testing something like this in practice<p>We’re not fundraising here. We’re mainly trying to learn where this kind of sensing is genuinely useful and where it isn’t.<p>Happy to answer technical questions.
Show HN: Claude-replay – A video-like player for Claude Code sessions
I got tired of sharing AI demos with terminal screenshots or screen recordings.<p>Claude Code already stores full session transcripts locally as JSONL files. Those logs contain everything: prompts, tool calls, thinking blocks, and timestamps.<p>I built a small CLI tool that converts those logs into an interactive HTML replay.<p>You can step through the session, jump through the timeline, expand tool calls, and inspect the full conversation.<p>The output is a single self-contained HTML file — no dependencies. You can email it, host it anywhere, embed it in a blog post, and it works on mobile.<p>Repo: <a href="https://github.com/es617/claude-replay" rel="nofollow">https://github.com/es617/claude-replay</a><p>Example replay: <a href="https://es617.github.io/assets/demos/peripheral-uart-demo.html" rel="nofollow">https://es617.github.io/assets/demos/peripheral-uart-demo.ht...</a>
Show HN: Swarm – Program a colony of 200 ants using a custom assembly language
We built an ant colony simulation as an internal hiring challenge at Moment and decided to open it up publicly.<p>You write a program in a custom assembly-like (we call it ant-ssembly) instruction set that controls 200 ants. Each ant can sense nearby cells (food, pheromones, home, other ants) but has no global view. The only coordination mechanism is pheromone trails, which ants can emit and sense them, but that's it. Your program runs identically on every ant.<p>The goal is to collect the highest percentage of food across a set of maps. Different map layouts (clustered food, scattered, obstacles) reward very different strategies. The leaderboard is live.<p>Grand prize is a trip to Maui for two paid for by Moment. Challenge closes March 12.<p>Curious what strategies people discover. We've seen some surprisingly clever emergent behavior internally.
Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting
I've been building a modern Ultima Online server emulator from scratch. It's not feature-complete (no combat, no skills yet), but the foundation is solid and I wanted to share it early.<p>What it does today:
- Full packet layer for the classic UO client (login, movement, items, mobiles)
- Lua scripting for item behaviors (double-click a potion, open a door — all defined in Lua, no C# recompile)
- Spatial world partitioned into sectors with delta sync (only sends packets for new sectors when crossing boundaries)
- Snapshot-based persistence with MessagePack
- Source generators for automatic DI wiring, packet handler registration, and Lua module exposure
- NativeAOT support — the server compiles to a single native binary
- Embedded HTTP admin API + React management UI
- Auto-generated doors from map statics (same algorithm as ModernUO/RunUO)<p>Tech stack: .NET 10, NativeAOT, NLua, MessagePack, DryIoc, Kestrel<p>What's missing: Combat, skills, weather integration, NPC AI. This is still early — the focus so far has been on getting the architecture right so adding those systems doesn't require rewiring everything.<p>Why not just use ModernUO/RunUO? Those are mature and battle-tested. I started this because I wanted to rethink the architecture from scratch: strict network/domain separation, event-driven game loop, no
inheritance-heavy item hierarchies, and Lua for rapid iteration on game logic without recompiling.<p>GitHub: <a href="https://github.com/moongate-community/moongatev2" rel="nofollow">https://github.com/moongate-community/moongatev2</a>
Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting
I've been building a modern Ultima Online server emulator from scratch. It's not feature-complete (no combat, no skills yet), but the foundation is solid and I wanted to share it early.<p>What it does today:
- Full packet layer for the classic UO client (login, movement, items, mobiles)
- Lua scripting for item behaviors (double-click a potion, open a door — all defined in Lua, no C# recompile)
- Spatial world partitioned into sectors with delta sync (only sends packets for new sectors when crossing boundaries)
- Snapshot-based persistence with MessagePack
- Source generators for automatic DI wiring, packet handler registration, and Lua module exposure
- NativeAOT support — the server compiles to a single native binary
- Embedded HTTP admin API + React management UI
- Auto-generated doors from map statics (same algorithm as ModernUO/RunUO)<p>Tech stack: .NET 10, NativeAOT, NLua, MessagePack, DryIoc, Kestrel<p>What's missing: Combat, skills, weather integration, NPC AI. This is still early — the focus so far has been on getting the architecture right so adding those systems doesn't require rewiring everything.<p>Why not just use ModernUO/RunUO? Those are mature and battle-tested. I started this because I wanted to rethink the architecture from scratch: strict network/domain separation, event-driven game loop, no
inheritance-heavy item hierarchies, and Lua for rapid iteration on game logic without recompiling.<p>GitHub: <a href="https://github.com/moongate-community/moongatev2" rel="nofollow">https://github.com/moongate-community/moongatev2</a>
Show HN: SitDeck – Customizable live dashboard of news, markets, threats
Show HN: SitDeck – Customizable live dashboard of news, markets, threats
Show HN: Qlog – grep for logs, but 100x faster
I built qlog because I got tired of waiting for grep to search through gigabytes of logs.<p>qlog uses an inverted index (like search engines) to search millions of log lines in milliseconds. It's 10-100x faster than grep and way simpler than setting up Elasticsearch.<p>Features:
- Lightning fast indexing (1M+ lines/sec using mmap)
- Sub-millisecond searches on indexed data
- Beautiful terminal output with context lines
- Auto-detects JSON, syslog, nginx, apache formats
- Zero configuration
- Works offline
- Pure Python<p>Example:
qlog index './logs/*/*.log'
qlog search "error" --context 3<p>I've tested it on 10GB of logs and it's consistently 3750x faster than grep. The index is stored locally so repeated searches are instant.<p>Demo: Run `bash examples/demo.sh` to see it in action.<p>GitHub: <a href="https://github.com/Cosm00/qlog" rel="nofollow">https://github.com/Cosm00/qlog</a><p>Perfect for developers/DevOps folks who search logs daily.<p>Happy to answer questions!
Show HN: A shell-native cd-compatible directory jumper using power-law frecency
I have used this tool privately since 2011 to manage directory jumping. While it
is conceptually similar to tools like z or zoxide, the underlying ranking model is
different. It uses a power-law convolution with the time series of cd actions to
calculate a history-aware "frecency" metric instead of the standard heuristic
counters and multipliers.<p>This approach moves away from point-estimates for recency. Most tools look only
at the timestamp of the last visit, which can allow a "one-off" burst of activity
to clobber long-term habits. By convolving a configurable history window
(typically the last 1,000+ events), the score balances consistent habits against
recent flukes.<p>On performance: Despite the O(N) complexity of calculating decay for 1,000+
events, query time is ~20-30ms (Real Time) in ksh/bash, which is well below the threshold of perceived lag.<p>I intentionally chose a Logical Path (pwd -L) model. Preserving symlink names
ensures that the "Name" remains the primary searchable key. Resolving to physical
paths often strips away the very keyword the user intends to use for searching.