The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Factorio Learning Environment – Agents Build Factories
I'm Jack, and I'm excited to share a project that has channeled my Factorio addiction recently: the Factorio Learning Environment (FLE).<p>FLE is an open-source framework for developing and evaluating LLM agents in Factorio. It provides a controlled environment where AI models can attempt complex automation, resource management, and optimisation tasks in a grounded world with meaningful constraints.<p>A critical advantage of Factorio as a benchmark is its unbounded nature. Unlike many evals that are quickly saturated by newer models, Factorio's geometric complexity scaling means it won't be "solved" in the next 6 months (or possibly even years). This allows us to meaningfully compare models by the order-of-magnitude of resources they can produce - creating a benchmark with longevity.<p>The project began 18 months ago after years of playing Factorio, recognising its potential as an AI research testbed. A few months ago, our team (myself, Akbir, and Mart) came together to create a benchmark that tests agent capabilities in spatial reasoning and long-term planning.<p>Two technical innovations drove this project forward: First, we discovered that piping Lua into the Factorio console over TCP enables running (almost) arbitrary code without directly modding the game. Second, we developed a first-class Python API that wraps these Lua programs to provide a clean, type-hinted interface for AI agents to interact with Factorio through familiar programming paradigms.<p>Agents interact with FLE through a REPL pattern:
1. They observe the world (seeing the output of their last action)
2. Generate Python code to perform their next action
3. Receive detailed feedback (including exceptions and stdout)<p>We provide two main evaluation settings:
- Lab-play: 24 structured tasks with fixed resources
- Open-play: An unbounded task of building the largest possible factory on a procedurally generated map<p>We found that while LLMs show promising short-horizon skills, they struggle with spatial reasoning in constrained environments. They can discover basic automation strategies (like electric-powered drilling) but fail to achieve more complex automation (like electronic circuit manufacturing). Claude Sonnet 3.5 is currently the best model (by a significant margin).<p>The code is available at <a href="https://github.com/JackHopkins/factorio-learning-environment" rel="nofollow">https://github.com/JackHopkins/factorio-learning-environment</a>.<p>You'll need:
- Factorio (version 1.1.110)
- Docker
- Python 3.10+<p>The README contains detailed installation instructions and examples of how to run evaluations with different LLM agents.<p>We would love to hear your thoughts and see what others can do with this framework!
Show HN: Seven39, a social media app that is only open for 3 hours every evening
I built this site as a quick test if a time boxed social media experience feels better than an endless one. So far I've just been using it with friends and it feels nice, but it seems like it is time to bring it to a larger audience.<p>Let me know what you think! It is just based on EST for now, sorry.
Show HN: Seven39, a social media app that is only open for 3 hours every evening
I built this site as a quick test if a time boxed social media experience feels better than an endless one. So far I've just been using it with friends and it feels nice, but it seems like it is time to bring it to a larger audience.<p>Let me know what you think! It is just based on EST for now, sorry.
Show HN: C++ AWS MSK IAM Auth Implementation – Goodbye Kafka Passwords
In 2023, AWS announced[1] IAM authentication for MSK Kafka clusters with support for "all programming languages"… except C++. While Java[2], Python[3], Go[4], and others got official SDKs, C++ developers/vendors were stuck hardcoding SCRAM-SHA credentials in code/configs or relying on heavier Java-based tools like Kafka Connect or Apache Flink.<p>Later, community projects added Rust[5] and Ruby[6] support. Why no C++? Rust might be the new favorite, but C++ is still king for high-performance data systems: minimal dependencies, lean resource use, and raw speed.<p>At Timeplus, we needed IAM auth for our C++ streaming engine, Proton, so we built it ourselves. Today, we’re open-sourcing our code for AWS MSK IAM authentication. It’s live in Timeplus Proton 1.6.12<p>Just attach an IAM role to your EC2 instance or EKS pod, then put the Timeplus Proton single binary inside, start the server, then run the following SQL to read or write MSK:<p>CREATE EXTERNAL STREAM msk_stream(column_defs)
SETTINGS
type='kafka',topic='topic2',
brokers='prefix.kafka.us-west-2.amazonaws.com:9098',
security_protocol='SASL_SSL',
sasl_mechanism='AWS_MSK_IAM';<p>The core logic is just two files under 200 lines and you can reuse the code anywhere.
<a href="https://github.com/timeplus-io/proton/blob/develop/src/IO/Kafka/AwsMskIamSigner.h">https://github.com/timeplus-io/proton/blob/develop/src/IO/Ka...</a>
<a href="https://github.com/timeplus-io/proton/blob/develop/src/IO/Kafka/AwsMskIamSigner.cpp">https://github.com/timeplus-io/proton/blob/develop/src/IO/Ka...</a><p>We’d love to get your feedback and work together to make this a standalone library—or even get it into ClickHouse or AWS SDK for C++.<p>For those curious about Timeplus Proton: it’s an open-source streaming engine we built in C++ (think “FlinkSQL in C++” meets ClickHouse’s columnar storage). Later this month, we will also open-source our C++ code for Apache Iceberg read&write. Stay tuned.<p>Links:<p>[1] <a href="https://aws.amazon.com/blogs/big-data/amazon-msk-iam-authentication-now-supports-all-programming-languages/" rel="nofollow">https://aws.amazon.com/blogs/big-data/amazon-msk-iam-authent...</a>
[2] <a href="https://github.com/aws/aws-msk-iam-auth">https://github.com/aws/aws-msk-iam-auth</a>
[3] <a href="https://github.com/aws/aws-msk-iam-sasl-signer-python">https://github.com/aws/aws-msk-iam-sasl-signer-python</a>
[4] <a href="https://github.com/aws/aws-msk-iam-sasl-signer-go">https://github.com/aws/aws-msk-iam-sasl-signer-go</a>
[5] <a href="https://docs.rs/aws-msk-iam-sasl-signer" rel="nofollow">https://docs.rs/aws-msk-iam-sasl-signer</a>
[6] <a href="https://rubygems.org/gems/aws-msk-iam-sasl-signer/" rel="nofollow">https://rubygems.org/gems/aws-msk-iam-sasl-signer/</a>
Show HN: Editable Games
I made an animation programming language that you can type into a textarea. I make little games with it. Now other people can customize the games I make with it.<p>I've been working on canvas language for 15 years now. Not very successful, but editable gifs turned out okay. Since it's my passion, I keep trying, and my latest is editable games - I'm not officially calling it that though.<p>I've had some interest in advergames and this would allow designers to easily customize games for their clients - the hidden objects game being the best example for this, and the only one made specifically for the purpose.<p>Anyways, games are interpreted at runtime by JavaScript. To publish, for example on itch or your own website, you need to submit your project file (download it from the dev studio) and wait a few minutes. You'll get back a JS file that contains your game.<p>ngl, although a passion project, I'd like this to one day be profitable - trying to work that out.<p>If interested, the main project site is <a href="https://canvaslanguage.com" rel="nofollow">https://canvaslanguage.com</a><p>I'd love to get some feedback. Although to be honest, I just want to show somebody my newest creation :)<p>Thank you.
Show HN: Editable Games
I made an animation programming language that you can type into a textarea. I make little games with it. Now other people can customize the games I make with it.<p>I've been working on canvas language for 15 years now. Not very successful, but editable gifs turned out okay. Since it's my passion, I keep trying, and my latest is editable games - I'm not officially calling it that though.<p>I've had some interest in advergames and this would allow designers to easily customize games for their clients - the hidden objects game being the best example for this, and the only one made specifically for the purpose.<p>Anyways, games are interpreted at runtime by JavaScript. To publish, for example on itch or your own website, you need to submit your project file (download it from the dev studio) and wait a few minutes. You'll get back a JS file that contains your game.<p>ngl, although a passion project, I'd like this to one day be profitable - trying to work that out.<p>If interested, the main project site is <a href="https://canvaslanguage.com" rel="nofollow">https://canvaslanguage.com</a><p>I'd love to get some feedback. Although to be honest, I just want to show somebody my newest creation :)<p>Thank you.
Show HN: Editable Games
I made an animation programming language that you can type into a textarea. I make little games with it. Now other people can customize the games I make with it.<p>I've been working on canvas language for 15 years now. Not very successful, but editable gifs turned out okay. Since it's my passion, I keep trying, and my latest is editable games - I'm not officially calling it that though.<p>I've had some interest in advergames and this would allow designers to easily customize games for their clients - the hidden objects game being the best example for this, and the only one made specifically for the purpose.<p>Anyways, games are interpreted at runtime by JavaScript. To publish, for example on itch or your own website, you need to submit your project file (download it from the dev studio) and wait a few minutes. You'll get back a JS file that contains your game.<p>ngl, although a passion project, I'd like this to one day be profitable - trying to work that out.<p>If interested, the main project site is <a href="https://canvaslanguage.com" rel="nofollow">https://canvaslanguage.com</a><p>I'd love to get some feedback. Although to be honest, I just want to show somebody my newest creation :)<p>Thank you.
Show HN: In-Browser Graph RAG with Kuzu-WASM and WebLLM
We show the potential of modern, embedded graph databases in the browser by demonstrating a fully in-browser chatbot that can perform Graph RAG using Kuzu (the graph database we're building) and WebLLM, a popular in-browser inference engine for LLMs. The post retrieves from the graph via a Text-to-Cypher pipeline that translates a user question into a Cypher query, and the LLM uses the retrieved results to synthesize a response. As LLMs get better, and WebGPU and Wasm64 become more widely adopted, we expect to be able to do more and more in the browser in combination with LLMs, so a lot of the performance limitations we see currently may not be as much of a problem in the future.<p>We will soon also be releasing a vector index as part of Kuzu that you can also use in the browser to build traditional RAG or Graph RAG that retrieves from both vectors and graphs. The system has come a long way since we open sourced it about 2 years ago, so please give us feedback about how it can be more useful!
Show HN: In-Browser Graph RAG with Kuzu-WASM and WebLLM
We show the potential of modern, embedded graph databases in the browser by demonstrating a fully in-browser chatbot that can perform Graph RAG using Kuzu (the graph database we're building) and WebLLM, a popular in-browser inference engine for LLMs. The post retrieves from the graph via a Text-to-Cypher pipeline that translates a user question into a Cypher query, and the LLM uses the retrieved results to synthesize a response. As LLMs get better, and WebGPU and Wasm64 become more widely adopted, we expect to be able to do more and more in the browser in combination with LLMs, so a lot of the performance limitations we see currently may not be as much of a problem in the future.<p>We will soon also be releasing a vector index as part of Kuzu that you can also use in the browser to build traditional RAG or Graph RAG that retrieves from both vectors and graphs. The system has come a long way since we open sourced it about 2 years ago, so please give us feedback about how it can be more useful!
Show HN: In-Browser Graph RAG with Kuzu-WASM and WebLLM
We show the potential of modern, embedded graph databases in the browser by demonstrating a fully in-browser chatbot that can perform Graph RAG using Kuzu (the graph database we're building) and WebLLM, a popular in-browser inference engine for LLMs. The post retrieves from the graph via a Text-to-Cypher pipeline that translates a user question into a Cypher query, and the LLM uses the retrieved results to synthesize a response. As LLMs get better, and WebGPU and Wasm64 become more widely adopted, we expect to be able to do more and more in the browser in combination with LLMs, so a lot of the performance limitations we see currently may not be as much of a problem in the future.<p>We will soon also be releasing a vector index as part of Kuzu that you can also use in the browser to build traditional RAG or Graph RAG that retrieves from both vectors and graphs. The system has come a long way since we open sourced it about 2 years ago, so please give us feedback about how it can be more useful!
Show HN: Searchable Vim Cheat Sheet with Favorites (Open-Source)
Show HN: Searchable Vim Cheat Sheet with Favorites (Open-Source)
Show HN: I built a free SVG Web site
This has been an experiment to see if I could create everything using scripts and AI.
If AI couldn't do it I'd get it to create the code such as API calls and so on. This websvg.com site was completely created using these AI tools. Including the DNS being applied, the Cloudflare Pages were automatically set up and the the web site was a Svelte 5 application generated by v0.dev and Cursor. Every image was generated in Midjourney and converted to SVG.
I have now taken all of these scripts and can create a similar landing or directory site in less than a minute, provided I have the data.
Anyway it's been fun.
Show HN: I built a free SVG Web site
This has been an experiment to see if I could create everything using scripts and AI.
If AI couldn't do it I'd get it to create the code such as API calls and so on. This websvg.com site was completely created using these AI tools. Including the DNS being applied, the Cloudflare Pages were automatically set up and the the web site was a Svelte 5 application generated by v0.dev and Cursor. Every image was generated in Midjourney and converted to SVG.
I have now taken all of these scripts and can create a similar landing or directory site in less than a minute, provided I have the data.
Anyway it's been fun.
Show HN: Can I run this LLM? (locally)
One of the most frequent questions one faces while running LLMs locally is:
I have xx RAM and yy GPU, Can I run zz LLM model ?
I have vibe coded a simple application to help you with just that.<p>Update:
A lot of great feedback for me to improve the app. Thank you all.
Show HN: Evolving Agents Framework
Hey HN,<p>I've been working on an open-source framework for creating AI agents that evolve, communicate, and collaborate to solve complex tasks. The Evolving Agents Framework allows agents to:<p>Reuse, evolve, or create new agents dynamically based on semantic similarity
Communicate and delegate tasks to other specialized agents
Continuously improve by learning from past executions
Define workflows in YAML, making it easy to orchestrate agent interactions
Search for relevant tools and agents using OpenAI embeddings
Support multiple AI frameworks (BeeAI, etc.)
Current Status & Roadmap
This is still a draft and a proof of concept (POC). Right now, I’m focused on validating it in real-world scenarios to refine and improve it.<p>Next week, I'm adding a new feature to make it useful for distributed multi-agent systems. This will allow agents to work across different environments, improving scalability and coordination.<p>Why?
Most agent-based AI frameworks today require manual orchestration. This project takes a different approach by allowing agents to decide and adapt based on the task at hand. Instead of always creating new agents, it determines if existing ones can be reused or evolved.<p>Example Use Case:
Let’s say you need an invoice analysis agent. Instead of manually configuring one, our framework:
Checks if a similar agent exists (e.g., a document analyzer)
Decides whether to reuse, evolve, or create a new agent
Runs the best agent and returns the extracted information<p>Here's a simple example in Python:<p>import asyncio
from evolving_agents.smart_library.smart_library import SmartLibrary
from evolving_agents.core.llm_service import LLMService
from evolving_agents.core.system_agent import SystemAgent<p>async def main():
library = SmartLibrary("agent_library.json")
llm = LLMService(provider="openai", model="gpt-4o")
system = SystemAgent(library, llm)<p><pre><code> result = await system.decide_and_act(
request="I need an agent that can analyze invoices and extract the total amount",
domain="document_processing",
record_type="AGENT"
)
print(f"Decision: {result['action']}") # 'reuse', 'evolve', or 'create'
print(f"Agent: {result['record']['name']}")
</code></pre>
if __name__ == "__main__":
asyncio.run(main())<p>Next Steps
Validating in real-world use cases and improving agent evolution strategies
Adding distributed multi-agent support for better scalability
Full integration with BeeAI Agent Communication Protocol (ACP)
Better visualization tools for debugging
Would love feedback from the HN community! What features would you like to see?<p>Repo: <a href="https://github.com/matiasmolinas/evolving-agents" rel="nofollow">https://github.com/matiasmolinas/evolving-agents</a>
Show HN: Evolving Agents Framework
Hey HN,<p>I've been working on an open-source framework for creating AI agents that evolve, communicate, and collaborate to solve complex tasks. The Evolving Agents Framework allows agents to:<p>Reuse, evolve, or create new agents dynamically based on semantic similarity
Communicate and delegate tasks to other specialized agents
Continuously improve by learning from past executions
Define workflows in YAML, making it easy to orchestrate agent interactions
Search for relevant tools and agents using OpenAI embeddings
Support multiple AI frameworks (BeeAI, etc.)
Current Status & Roadmap
This is still a draft and a proof of concept (POC). Right now, I’m focused on validating it in real-world scenarios to refine and improve it.<p>Next week, I'm adding a new feature to make it useful for distributed multi-agent systems. This will allow agents to work across different environments, improving scalability and coordination.<p>Why?
Most agent-based AI frameworks today require manual orchestration. This project takes a different approach by allowing agents to decide and adapt based on the task at hand. Instead of always creating new agents, it determines if existing ones can be reused or evolved.<p>Example Use Case:
Let’s say you need an invoice analysis agent. Instead of manually configuring one, our framework:
Checks if a similar agent exists (e.g., a document analyzer)
Decides whether to reuse, evolve, or create a new agent
Runs the best agent and returns the extracted information<p>Here's a simple example in Python:<p>import asyncio
from evolving_agents.smart_library.smart_library import SmartLibrary
from evolving_agents.core.llm_service import LLMService
from evolving_agents.core.system_agent import SystemAgent<p>async def main():
library = SmartLibrary("agent_library.json")
llm = LLMService(provider="openai", model="gpt-4o")
system = SystemAgent(library, llm)<p><pre><code> result = await system.decide_and_act(
request="I need an agent that can analyze invoices and extract the total amount",
domain="document_processing",
record_type="AGENT"
)
print(f"Decision: {result['action']}") # 'reuse', 'evolve', or 'create'
print(f"Agent: {result['record']['name']}")
</code></pre>
if __name__ == "__main__":
asyncio.run(main())<p>Next Steps
Validating in real-world use cases and improving agent evolution strategies
Adding distributed multi-agent support for better scalability
Full integration with BeeAI Agent Communication Protocol (ACP)
Better visualization tools for debugging
Would love feedback from the HN community! What features would you like to see?<p>Repo: <a href="https://github.com/matiasmolinas/evolving-agents" rel="nofollow">https://github.com/matiasmolinas/evolving-agents</a>
Show HN: Evolving Agents Framework
Hey HN,<p>I've been working on an open-source framework for creating AI agents that evolve, communicate, and collaborate to solve complex tasks. The Evolving Agents Framework allows agents to:<p>Reuse, evolve, or create new agents dynamically based on semantic similarity
Communicate and delegate tasks to other specialized agents
Continuously improve by learning from past executions
Define workflows in YAML, making it easy to orchestrate agent interactions
Search for relevant tools and agents using OpenAI embeddings
Support multiple AI frameworks (BeeAI, etc.)
Current Status & Roadmap
This is still a draft and a proof of concept (POC). Right now, I’m focused on validating it in real-world scenarios to refine and improve it.<p>Next week, I'm adding a new feature to make it useful for distributed multi-agent systems. This will allow agents to work across different environments, improving scalability and coordination.<p>Why?
Most agent-based AI frameworks today require manual orchestration. This project takes a different approach by allowing agents to decide and adapt based on the task at hand. Instead of always creating new agents, it determines if existing ones can be reused or evolved.<p>Example Use Case:
Let’s say you need an invoice analysis agent. Instead of manually configuring one, our framework:
Checks if a similar agent exists (e.g., a document analyzer)
Decides whether to reuse, evolve, or create a new agent
Runs the best agent and returns the extracted information<p>Here's a simple example in Python:<p>import asyncio
from evolving_agents.smart_library.smart_library import SmartLibrary
from evolving_agents.core.llm_service import LLMService
from evolving_agents.core.system_agent import SystemAgent<p>async def main():
library = SmartLibrary("agent_library.json")
llm = LLMService(provider="openai", model="gpt-4o")
system = SystemAgent(library, llm)<p><pre><code> result = await system.decide_and_act(
request="I need an agent that can analyze invoices and extract the total amount",
domain="document_processing",
record_type="AGENT"
)
print(f"Decision: {result['action']}") # 'reuse', 'evolve', or 'create'
print(f"Agent: {result['record']['name']}")
</code></pre>
if __name__ == "__main__":
asyncio.run(main())<p>Next Steps
Validating in real-world use cases and improving agent evolution strategies
Adding distributed multi-agent support for better scalability
Full integration with BeeAI Agent Communication Protocol (ACP)
Better visualization tools for debugging
Would love feedback from the HN community! What features would you like to see?<p>Repo: <a href="https://github.com/matiasmolinas/evolving-agents" rel="nofollow">https://github.com/matiasmolinas/evolving-agents</a>
Show HN: I built an app to get daily wisdom from Mr. Worldwide
Pitbull is coming to Stockholm. As a part of that prep, I built an app with glassmorphism style counting down to the big day
Show HN: I built an app to get daily wisdom from Mr. Worldwide
Pitbull is coming to Stockholm. As a part of that prep, I built an app with glassmorphism style counting down to the big day