惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
A
About on SuperTechFans
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
D
DataBreaches.Net
B
Blog
博客园 - 【当耐特】
爱范儿
爱范儿
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
WordPress大学
WordPress大学
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
Engineering at Meta
Engineering at Meta
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网
量子位
G
Google Developers Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - IdreesInc/PokeMesh: Collaborative Pokémon over a...
IdreesInc · 2026-04-24 · via Hacker News: Show HN

PokeMesh: MeshCore Plays Pokémon

License Discord

PokeMesh is a collaborative game of Pokémon FireRed played over a decentralized network! The game view is processed and summarized, effectively turning the game into a text-based adventure over MeshCore. In the style of "Twitch Plays Pokémon", players submit inputs and the most requested inputs are ran every 15 seconds to progress through the game!

Emulator View Preprocessor Output MeshCore Chat
In-game screenshot before being processed Screenshot after being processed with a red grid overlaid and a legend with steps on the left and bottom MeshCore #bot chatroom showing the command '/poke up 5 a' and the PokeMesh output of 'Mom: '...Right. All boys leave home someday'

Note: PokeMesh is not affiliated with Nintendo, Game Freak, or the Pokémon Company. Pokémon and all related content are trademarks of Nintendo.

Project Goals

  • Play a game of Pokémon FireRed collaboratively on a decentralized chat network that doesn't support images
  • Convert the Game Boy Advance game into a text-based format that fits within 138 characters to conform to MeshCore's tight message limits
  • Be able to run the server without any internet connection, relying entirely on the mesh network for communication
  • Use only open-source, local models that run on an old laptop with 32 GB of shared RAM
  • Ensure summaries are accurate while also keeping processing time under 15 seconds

How To Play

PokeMesh is currently running in the San Francisco Bay Area mesh network. To play, connect to the #bot channel on MeshCore and submit inputs in the format /poke [input] [times] (e.g. /poke up 2 right a 3 will press up twice, then right once, then a three times). You can also submit queries in the format /poke [query] (e.g. /poke where) to get information about the game! Type in /poke help to view all the available commands.

How It Works

  1. A user submits an input command like /poke up 2 right a 3 in the configured MeshCore channel
  2. The PokeMesh instance running on a server connected to a MeshCore companion node receives the command
  3. Every 15 seconds, the queries are counted and the most popular input sequence is executed on a live game of Pokémon FireRed
  4. After everything is executed, a screenshot of the game is taken
  5. The screenshot is first processed by the "preprocessor"
  6. The preprocessor output is sent to a local VLM along with a custom prompt to generate a summary of the current game state
  7. The summary is posted back onto MeshCore and a new round starts

Preprocessor

The preprocessor takes the original screenshot and makes it easier for the VLM to process. While this might not be necessary for more powerful models, it allows local models to better understand what they're seeing and significantly reduces mistakes. It also allows us to pre-identify important sprites like entrances and exits for better pathfinding.

The preprocessor first breaks down the screenshot into the individual tiles that make up the screen render. Certain tiles are identified and replaced with template tiles that are easier for the VLM to identify. For example, multiple kinds of doors will be replaced by a single "door" tile that is later described in the VLM prompt.

The preprocessor then stitches the tiles back together into the output image, along with a grid overlay allows the VLM to better understand the positions and possible movement options available to the player. A legend is drawn outside the screenshot on each axis to define positions as relational to the player at the origin.

Replaced tiles are stored and certain tiles are passed to the VLM as part of the prompt. This not only reduces mistakes in identifying those specific objects, but it has also been found to improve the identification of other tiles that weren't pre-identified as well.

How to Run

  1. Clone the repository and install the requirements with uv
  2. Download a development build of the mGBA emulator
    • A development build is required for running a Lua script on startup
    • You can use a normal build, but you will have to manually run the mGBA-http Lua script every time you start the emulator
  3. Download the mGBA-http Lua script and executable
  4. Place the mGBA executable, mGBA-http executable, Lua script, and your game rom in the mgba folder
  5. Create a secrets.json file in the root directory following the format in example_secrets.json
  6. Run the emulator with start_emulator.sh (make sure to update the ROM path in start_emulator.sh if you're not using the secrets.json method)
  7. Run main.py to start the bot!

Getting in Touch

If you'd like to get in touch, check out the Discord to suggest features, report bugs, and stay updated on development!

Also feel free to check out my other open-source projects like Monocraft, PicoChat, and more on my website!

Disclaimer

This program uses a VLM (Vision Language Model) to process the game screenshots, but like all of my open-source projects, the source code and documentation for PokeMesh was not "vibe coded" with AI. While you are welcome to use whatever tools you prefer to contribute, please be sure to review all code by hand and do not blindly commit.