A Flask-based news aggregator that scrapes the latest blog posts, research updates, and product news from companies and labs working on embodied AI (humanoid robots, manipulation, robot-learning foundation models, world models, simulation).
Each source has a dedicated scraper in app.py and is dispatched
through the SCRAPERS registry. Results are cached for 5 minutes and
served at / (rendered) and /api/posts (JSON). Failed scrapes fall back
to a hand-curated snapshot in FALLBACK_DATA.
pip install -r requirements.txt
python app.py # serves on 0.0.0.0:80Routes:
GET /— rendered feed (templates/index.html)GET /api/posts— aggregated posts as JSONGET /refresh— force-invalidate the cache
34 sources, displayed alphabetically in the UI. Grouped below by focus area for readability.
| Source | URL |
|---|---|
| Physical Intelligence | https://www.pi.website/blog |
| Skild AI | https://www.skild.ai/blogs |
| Generalist AI | https://generalistai.com |
| Genesis AI | https://www.genesis.ai/blog |
| Sunday Robotics | https://www.sunday.ai/journal |
| World Labs | https://www.worldlabs.ai/blog |
| Dexmal | https://www.dexmal.com/research |
| XDOF | https://www.xdof.ai/blog |
| Source | URL |
|---|---|
| 1X Technologies | https://www.1x.tech/discover |
| Agility Robotics | https://www.agilityrobotics.com/resources |
| Boston Dynamics | https://bostondynamics.com/blog/ |
| Figure | https://www.figure.ai/news |
| Sanctuary AI | https://www.sanctuary.ai |
| AGIBOT Finch | https://finch.agibot.com/research |
| Galaxea | https://opengalaxea.github.io/G05/ |
| OneRobotics | https://www.onerobot.com/news |
| X Square Robot | https://x2robot.com/en/news |
| BeingBeyond | https://research.beingbeyond.com |
| Spirit AI | https://www.spirit-ai.com/en/blog/ |
| MANUS | https://www.manus-meta.com/blog |
| Source | URL |
|---|---|
| Sharpa | https://www.sharpa.com/blogs/research |
| DexForce | https://www.dexforce.com/core.html |
| Agile Robots | https://www.agile-robots.com/en/news/ |
| Hexagon Robotics | https://robotics.hexagon.com/news/ |
| Ropedia | https://ropedia.com |
| Source | URL |
|---|---|
| NVIDIA Blog (Robotics) | https://blogs.nvidia.com/blog/category/robotics/ |
| NVIDIA GEAR | https://research.nvidia.com/labs/gear/ |
| NVIDIA Cosmos Lab | https://research.nvidia.com/labs/cosmos-lab/ |
| ByteDance Seed (Robotics) | https://seed.bytedance.com/en/direction/robotics |
| Xiaomi Robotics | https://robotics.xiaomi.com |
| Source | URL |
|---|---|
| RL2 @ Georgia Tech | https://rl2.cc.gatech.edu |
| RoboTouch Lab | https://www.robotouchlab.com/publication/ |
| REAL @ Stanford | https://real.stanford.edu/research.html |
- Add an entry to
BLOG_SOURCESinapp.py(name,url,base_url,color). - Write a
scrape_<name>(source)function returning a list of post dicts (title,url,date,summary,image,company). - Register it in the
SCRAPERSdispatch dict. - Optionally add a
FALLBACK_DATAentry so the source still renders if the live site is down.