Sign in

Antonin Raffin

@araffin.bsky.social
3.4K followers 338 following 120 posts

Researcher in robotics and machine learning (Reinforcement Learning). Maintainer of Stable-Baselines (SB3). araffin.github.io

PostsRepliesMedia
Reposted by Antonin Raffin
Transactions on Machine Learning Research @tmlrorg.bsky.social · 16/09/2026
TMLR has faced a deluge of submissions, necessitating stricter desk rejection policies due to limited reviewer capacity Co-EiC Nihar Shah reached out to authors of 10 papers slated for desk reject. Could they answer questions about their *own* submission? medium.com/@TmlrOrg/ask...
medium.com
Asking Authors About Their Own Papers
By Nihar B. Shah
116163
Reposted by Antonin Raffin
German Aerospace Center (DLR) @dlr-en.bsky.social · 09/09/2026
🤖 15 of the world's most advanced AI-based robots took the stage at the European Parliament in Brussels last week. Our humanoid Rollin' Justin showed off its skills as a household assistant, alongside drones, quadrupeds and industrial systems.
182
Reposted by Antonin Raffin
Matt Henderson @matthen.com · 25/08/2026
Playing with the P, I, and D weights in a PID controller. P = Proportional: push in proportion to how far the ball is off I = Integral: accumulate historical error to fix slow drift D = Derivative: respond to how fast the error is changing, to damp it
512628
Reposted by Antonin Raffin
Journal of Open Source Software @joss-openjournals.bsky.social · 19/08/2026
Just published in JOSS: 'Links and Nodes: Middleware for distributed real-time robotic systems' doi.org/10.21105/joss.10777
011
Reposted by Antonin Raffin
Taylor W. Killian @twkillian.bsky.social · 13/08/2026
I'm excited to see how this new interface plays out. Interactivity in my bluesky experiences has been low (likely a function of my own activity, sorry), but I'm looking forward to engaging more here!
142
Reposted by Antonin Raffin
Prefix.dev - the Pixi company @prefix.dev · 12/08/2026
A single Python file can now carry its own environment. pixi run --script hello.py Pixi reads PEP 723 inline metadata. No pixi.toml, no .pixi folder, no lock file unless you ask for one.
1145
Reposted by Antonin Raffin
Nicolas Audebert @nshaud.bsky.social · 03/08/2026
I'm burnt out of discussing "AI". I don't care for the press releases from big companies. I hate having to comment immediately. I dislike "hot takes". I'm worried we, as scientists, are losing touch with scientific values. We've become customers, salivating at ads marketed to investors. 1/15
49135
Reposted by Antonin Raffin
Dustin @dustycode.dev · 01/08/2026
lmao this is brilliant, a page about cursed knowledge gained from building immich immich.app/cursed-knowl...
immich.app
Cursed Knowledge | Immich
Cursed knowledge we have learned as a result of building Immich that we wish we never knew.
0325
Reposted by Antonin Raffin
Brandon Rohrer @brandonrohrer.com · 26/07/2026
Heads up ruff users - with the release of 0.16.0 this week the number of default rules went up from 59 to to 413. This means that if you're ruff version auto updates, your CI pipelines might start failing on you all of a sudden.
143
Reposted by Antonin Raffin
Continual RL Workshop @continual-rl.bsky.social · 13/07/2026
📚 Interested in Continual RL but not sure where to start? 👇 Dive in: sites.google.com/view/continu... ♾️ We've curated a resource hub with key papers, benchmarks, codebases, tutorials, and more to help you get up to speed quickly. #ContinualRL #ReinforcementLearning #MachineLearning #AI
1184
Reposted by Antonin Raffin
Stéphane Caron @locoscaron.fosstodon.org.ap.brid.gy · 04/07/2026
New software blog post on migrating continuous integration from GitHub to Codeberg: scaron.info/blog/migrating-continuo… After using it for 3-4 months, I found Woodpecker CI simple and to the point. My experience with it has been very positive.
scaron.info
Over the past few months, I've been experimenting with migrating projects from GitHub to Codeberg. Four projects in, I've found that the main non-trivial step is migrating continuous integration (CI) from GitHub Actions to Codeberg's instance of Woodpecker CI. Most other steps are straightforward, as Codeberg is mostly at feature parity with GitHub and follows its main design principles. In this note, we thus focus on CI migration. First, we will summarize the steps to activate Woodpecker CI in your Codeberg repository, and second, we will see template CI pipelines for common use cases like linting, documentation and testing. # Activating Woodpecker CI Codeberg has two continuous integration systems: Woodpecker CI and Forgejo Actions. Woodpecker CI is a standalone system with its own pipeline format, configured in `.woodpecker/*.yml` files. It spins up containers where each step runs in a Docker image. We will go with Woodpecker CI as it is readily available on Codeberg and does not require self-hosted runners. Woodpecker CI access on Codeberg is only provided for open-source projects, and as such it is not granted by default. The first step is to fill out a CI request issue: here is for instance the one I filed for `lpsolvers`, the first project I migrated. This approval is only needed once. Afterwards, CI access will be granted to all your future open-source projects. Once access has been granted, you can activate continuous integration for your repository as follows: * Log into Woodpecker CI at ci.codeberg.org * Click on "Repositories" in the top menu * Click on `+ Add repository`: this displays a list of your repositories * Click on `Enable` next to your repository After activation, any push or pull request that includes pipeline files in `.woodpecker/` will trigger a build. # Woodpecker CI workflows A quick word on terminology, as workflows don't mean the same thing in GitHub Actions and Woodpecker CI. In GitHub Actions, workflows defined in `.github/workflows/*.yml` are the top-level unit of context that run in separate containers. Each workflow holds one or more _jobs_ , each job defining a sequence of _steps_. In Woodpecker CI, the top-level unit is called a _pipeline_. Workflows are defined in `.woodpecker/*.yml`, but a workflow is directly a sequence of steps. The correspondence is then: * **GitHub Actions:** workflows define jobs that execute steps * **Woodpecker CI:** pipelines define workflows that execute steps A Woodpecker _workflow_ is therefore the equivalent of a GitHub Actions _job_. Beyond the naming, the semantics are familiar: workflows run in parallel in separate containers by default, dependencies are opt-in, and files are shared only within a workflow, so that passing artifacts across workflows needs external storage, just as it does across GitHub jobs. Let us now take a look at workflow examples for Python projects using pixi. You should be able to adapt them to your language and tooling of choice. ## Linting On GitHub, a workflow named for instance `.github/workflows/lint.yml` would look like: on: [push, pull_request] jobs: lint: name: "Code style" runs-on: ubuntu-latest steps: - name: "Checkout sources" uses: actions/checkout@v4 - name: "Setup pixi" uses: prefix-dev/setup-pixi@v0.8.8 with: pixi-version: v0.44.0 cache: true - name: "Run linting" run: | pixi run -e lint lint On Codeberg, it becomes a similar `.woodpecker/lint.yml`: when: - event: [push, pull_request] steps: - name: lint image: ghcr.io/prefix-dev/pixi:latest commands: - pixi run -e lint lint Note how the `actions/checkout` from GitHub Actions is gone: before running steps, Woodpecker automatically clones the repository (using the `woodpeckerci/plugin-git` image) by default into the workspace. The behavior can be overridden in a `clone:` section of the workflow if needed, for instance to shallow-clone with a specific depth. ## Testing On GitHub, a workflow named for instance `.github/workflows/test.yml` would look like: on: [push, pull_request] jobs: test: name: "Test with ${{ matrix.pyenv }}" runs-on: ubuntu-latest strategy: matrix: pyenv: [py310, py311, py312, py313] steps: - name: "Checkout sources" uses: actions/checkout@v4 - name: "Setup pixi" uses: prefix-dev/setup-pixi@v0.8.8 with: pixi-version: v0.44.0 cache: true - name: "Test with pixi" run: | pixi run -e test-${{ matrix.pyenv }} test On Codeberg, it becomes `.woodpecker/test.yml`: when: - event: [push, pull_request] matrix: include: - PIXI_ENV: test-py310 - PIXI_ENV: test-py311 - PIXI_ENV: test-py312 - PIXI_ENV: test-py313 steps: - name: test image: ghcr.io/prefix-dev/pixi:latest commands: - pixi run -e ${PIXI_ENV} test ## Documentation On GitHub, a workflow named for instance `.github/workflows/docs.yml` would look like: on: [push, pull_request] jobs: docs: name: "GitHub Pages" runs-on: ubuntu-latest permissions: contents: write steps: - name: "Checkout Git repository" uses: actions/checkout@v4 - name: "Setup pixi" uses: prefix-dev/setup-pixi@v0.8.8 with: pixi-version: v0.44.0 cache: true - name: "Build documentation" run: | pixi run -e docs docs-build - name: "Deploy to GitHub Pages" uses: peaceiris/actions-gh-pages@v3 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} with: publish_branch: gh-pages github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: _build/ force_orphan: true On Codeberg, GitHub Pages is replaced by Codeberg Pages, which serves static files from a `pages` branch. The following pipeline builds Sphinx documentation, then deploys the output to that branch. The documentation will then be served at `https://USERNAME.codeberg.page/REPONAME/`. On Codeberg, the pipeline becomes `.woodpecker/docs.yml`: when: - event: [push, pull_request] steps: - name: build image: ghcr.io/prefix-dev/pixi:latest commands: - pixi run -e docs docs-build - name: deploy image: alpine/git commands: - | if git clone --depth 1 --branch pages \ "https://x-token:$$CBTOKEN@codeberg.org/${CI_REPO_OWNER}/${CI_REPO_NAME}.git" \ _pages; then : else git clone --depth 1 \ "https://x-token:$$CBTOKEN@codeberg.org/${CI_REPO_OWNER}/${CI_REPO_NAME}.git" \ _pages git -C _pages checkout --orphan pages fi - git config --global --add safe.directory "$(pwd)/_pages" - git config --global user.email "ci@noreply.codeberg.org" - git config --global user.name "CI" - git -C _pages rm -rf --ignore-unmatch . - cp -r _build/. _pages/ - git -C _pages add -A - git -C _pages diff --cached --quiet || git -C _pages commit -m "Deploy documentation [CI SKIP]" - git -C _pages push origin pages environment: CBTOKEN: from_secret: cbtoken when: - event: push branch: ${CI_REPO_DEFAULT_BRANCH} Note the `[CI SKIP]` label in the automated commit: steps that push to branches must include it in their commit messages to prevent triggering new pipeline runs. This template uses a `cbtoken` secret as it requires permissions to push to the `pages` branch. See below for a summary of the steps to follow to configure this secret in Woodpecker CI. ## Coverage GitHub projects commonly use Coveralls or Codecov for coverage reporting, but these services don't integrate with Codeberg. On Codeberg, we will go instead for a self-hosted solution where we generate a `coverage/` subdirectory of the documentation website, populated by `coverage html` and pushed to the `pages` branch alongside the Sphinx docs. We also use genbadge to generate a `badge.svg` displayed in the readme and linking to the coverage report. On GitHub with Coveralls, a workflow named for instance `.github/workflows/coverage.yml` would look like: on: [push, pull_request] jobs: coverage: name: "Coverage" runs-on: ubuntu-latest steps: - name: "Checkout sources" uses: actions/checkout@v4 - name: "Setup pixi" uses: prefix-dev/setup-pixi@v0.8.8 with: pixi-version: v0.44.0 cache: true - name: "Install coveralls" run: | pip install coveralls - name: "Check code coverage" run: | pixi run -e coverage coverage - name: "Coveralls" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | coveralls --service=github In the Codeberg variant, we generate a coverage badge using `genbadge` locally from our coverage report: mkdir -p coverage coverage erase && coverage run -m unittest discover coverage report --include='<project-name>/*' # Generate the coverage badge coverage xml --include='<project-name>/*' -o coverage/coverage.xml genbadge coverage -i coverage/coverage.xml -o coverage/badge.svg # Generate the HTML coverage report coverage html --include='<project-name>/*' --directory=coverage/html/ We then push both the badge and HTML coverage reports to a sub-directory of the `pages` branch. On Codeberg, the pipeline becomes `.woodpecker/coverage.yml`: when: - event: [push, pull_request] steps: - name: coverage image: ghcr.io/prefix-dev/pixi:latest commands: - pixi run -e coverage coverage - name: publish-coverage image: alpine/git commands: - git clone --depth 1 --branch pages "https://x-token:$$CBTOKEN@codeberg.org/${CI_REPO_OWNER}/${CI_REPO_NAME}.git" _pages - rm -rf _pages/coverage/ - mkdir -p _pages/coverage - cp -r coverage/html/. _pages/coverage/ - cp coverage/badge.svg _pages/coverage/badge.svg - rm -f _pages/coverage/.gitignore - cd _pages - git config --global --add safe.directory "$(pwd)" - git config --global user.email "ci@noreply.codeberg.org" - git config --global user.name "CI" - git remote set-url origin "https://x-token:$$CBTOKEN@codeberg.org/${CI_REPO_OWNER}/${CI_REPO_NAME}.git" - git add --all - git diff --cached --quiet || git commit -m "Update coverage report [CI SKIP]" - git push -u origin pages environment: CBTOKEN: from_secret: cbtoken when: - event: push branch: ${CI_REPO_DEFAULT_BRANCH} depends_on: - docs Note how we made the coverage workflow depend on the documentation one, so that the `pages` branch already exists when it runs. We also used again the `[CI SKIP]` label in the automated commit message so that pushing doesn't trigger an additional pipeline run. This template uses a `cbtoken` secret as it requires permissions to push to the `pages` branch. See below for a summary of the steps to follow to configure this secret in Woodpecker CI. # Secrets If your workflows perform some restricted operations, like pushing to branches for coverage or documentation, Woodpecker will need a Codeberg personal access token. You can set it up as follows: * On Codeberg: * Go to Settings * Create a personal access token with "Repository Read & Write" permissions. * **Note down the generated string carefully.** As far as I understand, you won't be able to display it again later on. * On Woodpecker CI: * Go to the repository's settings (cog icon) * Go to the Secrets tab * Add the copied token as a secret named `cbtoken` In the template workflows above, secrets are exposed to steps via the `environment` block with `from_secret`: environment: CBTOKEN: from_secret: cbtoken The token can then be used in git clone or push URLs as `https://x-token:$$CBTOKEN@codeberg.org/...`, as in the documentation and coverage workflows above. The double `$$` is important: Woodpecker pre-processes `${VAR}` syntax and would resolve the token to an empty string before the shell ever sees it. Using `$$CBTOKEN` escapes Woodpecker's substitution so that the shell resolves the variable from the environment at runtime. This won't cause a leak, as secrets are automatically redacted from logs. # To go further In this post, we used Woodpecker CI for continuous integration. After using it for 3-4 months, this system has given me the impression of being simple and to the point, and my overall experience has been entirely positive. If you are looking for more details not covered in this post, the main page to start from is Working with Codeberg's CI in the Codeberg documentation. You can also check out Woodpecker CI examples for other languages in the Codeberg-CI / examples repository. ## Discussion ¶ Feel free to post a comment by e-mail using the form below. Your e-mail address will not be disclosed. 📝 You can use Markdown with `$\LaTeX$` formulas in your comment. Name Website Comment By clicking the button below, you agree to the publication of your comment on this page. Post by e-mail Opens your e-mail client.
051
Reposted by Antonin Raffin
Gabriel Peyré @gabrielpeyre.bsky.social · 16/06/2026
The alpha version of my new book "Optimal Transport for Machine Learners" is out, with in particular an online version with interactive figures www.gpeyre.com/ot4ml/
09843
Antonin Raffin @araffin.bsky.social · 10/05/2026
"Codex grew programmatic policies with no neural nets: max score on Breakout, and SOTA-level scores on MuJoCo. Maybe heuristics were not too weak. Maybe they were just too expensive to maintain. Maybe it's the next paradigm." trinkle23897.github.io/learning-bey...
trinkle23897.github.io
Learning Beyond Gradients
Learning Beyond Gradients
4469
Reposted by Antonin Raffin
Julia's Reruns Bot @b0rk-reruns.jvns.ca · 02/05/2026
bash errors permalink: wizardzines.com/comics/bash-errors from our zine Bite Size Bash!: wizardzines.com/zines/bite-size-bash
### by default, bash will continue after errors 
bash, represented by a box with a smiley face: oh, was that an error? who cares, let's keep running!!!

programmer, represented by a nonplussed stick figure with short curly hair: uh that is NOT what I wanted

### `set -e` stops the script on errors
```
set -e
unzip fle.zip
```
(typo! script stops here!)

programmer, smiling: this makes your scripts WAY more predictable

### by default, unset variables don't error
`rm -r "$HOME/$SOMEPTH"` 

bash, happily: `$SOMEPTH` doesn't exist? no problem, i'll just use an empty string!

programmer: OH NOOOO that means `rm -rf $HOME`

### `set -u` stops the script on unset variables 
```
set-u
rm -r "$HOME/$SOMEPTH"
```
bash, concerned: I've never heard of `$SOMEPTH`! STOP EVERYTHING!!!

### by default, a command failing doesn't fail the whole pipeline

`curl yxqzq.ca | grep 'panda'`

bash, pleased with itself: `curl` failed but `grep` succeeded so it's fine! success!

### `set -o pipefail` makes the
0122
Reposted by Antonin Raffin
Rodney Brooks @rodneyabrooks.bsky.social · 29/04/2026
Look at these videos including at 1/25th speed. I am an advisor but is the Team that co-founders Pulkit and Tuomas have built that do the real work. Force-first thinking is critical for true dexterity. They have it working at industrial speed. This is a real jump in capability. ekarobotics.com
ekarobotics.com
Eka Robotics
The Era of Superhuman Robotics
2234
Reposted by Antonin Raffin
$ jdx --help @jdx.dev · 23/04/2026
jdx.dev/posts/2026-0...
jdx.dev
Going Full Time on Open Source
Jeff Dickey's personal website
2242
Antonin Raffin @araffin.bsky.social · 23/04/2026
"If you thought the speed of writing code was your problem - you have bigger problems", a blog post about why coding agents are not the solution. found via @stefanjudis.com andrewmurphy.io/blog/if-you-...
andrewmurphy.io
If you thought the speed of writing code was your problem - you have bigger problems | Debugging Leadership
AI coding tools are optimising the wrong thing and nobody wants to hear it. Writing code was already fast. The bottleneck is everything else: unclear requirements, review queues, terrified deploy cult...
030
Reposted by Antonin Raffin
Eugene Vinitsky 🍒 @eugenevinitsky.bsky.social · 21/04/2026
Noodling on some lab documentation for LLM usage but high level: 1. LLMs still make bad design decisions. Do not let them make design choices. 2. You’re still responsible for your code correctness. This means reading a lot of code. Hence, bullet point 1.
4803
Reposted by Antonin Raffin
Léαlinux 🐧 @lea-linux.org · 16/04/2026
sleepingrobots.com/dreams/stop-... DramIA :
sleepingrobots.com
Friends Don't Let Friends Use Ollama | Sleeping Robots
Ollama gained traction by being the first easy llama.cpp wrapper, then spent years dodging attribution, misleading users, and pivoting to cloud, all while riding VC money earned on someone else's engi...
061
Antonin Raffin @araffin.bsky.social · 10/04/2026
What Matters for Simulation to Online Reinforcement Learning on Real Robots "We investigate what specific design choices enable successful online reinforcement learning (RL) on physical robots." arxiv.org/abs/2602.20220
arxiv.org
What Matters for Simulation to Online Reinforcement Learning on Real Robots
We investigate what specific design choices enable successful online reinforcement learning (RL) on physical robots. Across 100 real-world training runs on three distinct robotic platforms, we systematically ablate algorithmic, systems, and experimental decisions that are typically left implicit in prior work. We find that some widely used defaults can be harmful, while a set of robust, readily adopted design choices within standard RL practice yield stable learning across tasks and hardware. These results provide the first large-sample empirical study of such design choices, enabling practitioners to deploy online RL with lower engineering effort.
082
Antonin Raffin @araffin.bsky.social · 01/04/2026
Stable-Baselines3 v2.8.0 comes with a fix for a long-standing (4 years!) bug in `MaskablePPO`, as well as default hyperparameters for unlisted environments in the RL Zoo and additional quality-of-life improvements. Also, our documentation is now fully in Markdown! github.com/DLR-RM/stabl...
github.com
Release v2.8.0: Dropped Python 3.9, added Python 3.13 support, MaskablePPO bug fix, default hyperparams for unlisted env in the RL Zoo, Markdown doc · DLR-RM/stable-baselines3
Breaking Changes: Removed support for Python 3.9, please upgrade to Python >= 3.10 Set strict=True for every call to zip(...) Switched to pygame-ce when installing extras New Features: Added off...
160
Reposted by Antonin Raffin
Savannah Ostrowski @savannah.dev · 30/03/2026
Gittensor is paying crypto for merged OSS PRs and it’s generating slop contributions to repos listed on their platform without maintainer consent. If you maintain an open source project, it's probably worth checking if you’re listed and requesting removal: gittensor.io/repositories
gittensor.io
Gittensor | Autonomous Software Development
The workforce for open source. Compete for rewards by contributing quality code to open source repositories.
1127
Reposted by Antonin Raffin
Laurent Cheylus @lcheylus.bsky.social · 27/03/2026
The Story of Python's Lazy Imports: why it tooks 3 years and 2 attempts to have a "lazy" Keyword coming in version 3.15 #Python techlife.blog/posts/the-st...
techlife.blog
The Story of Python's Lazy Imports: Why It Took Three Years and Two Attempts
From PEP 690's rejection to PEP 810's unanimous acceptance — how Python finally got explicit lazy imports after three years of real-world production evidence and a fundamental design inversion
081
Antonin Raffin @araffin.bsky.social · 23/03/2026
TIL: when using PyTest, you can get a list of the slowest ten test durations over 1.0s long: `pytest --durations=10 --durations-min=1.0`, pass `--durations=0 -vv` to show all durations. See docs.pytest.org/en/6.2.x/usa...
docs.pytest.org
Usage and Invocations — pytest documentation
070
Reposted by Antonin Raffin
papinimat.bsky.social @papinimat.bsky.social · 20/03/2026
One week left to apply to the Reinforcement Learning Summer School (Milan, 3-12 June 2026). Don't miss this opportunity to dive deep into RL foundations and learn about the most recent applications! rlsummerschool.com/application/
rlsummerschool.com
Application | RLSS 2026
Apply to RLSS 2026 in Milan and find admission details, deadlines, fees, scholarships, and the registration process for the summer school.
0137
Reposted by Antonin Raffin
Matheus Lima @terriblesoftware.org · 03/03/2026
You can't write a compelling promotion packet about the thing you didn't build. And that's the whole problem. terriblesoftware.org/2026/03/03/n...
terriblesoftware.org
Nobody Gets Promoted for Simplicity
We reward complexity and ignore simplicity. In interviews, design reviews, and promotions. Here’s how to fix it.
2187
Reposted by Antonin Raffin
Tom Schaul @schaul.bsky.social · 16/03/2026
DeepMind's RL team is hiring a research scientist: if you're passionate about RL, come work with us! And if you know people who might be interested, please share: job-boards.greenhouse.io/deepmind/job...
job-boards.greenhouse.io
Research Scientist, Reinforcement Learning
London, UK
12914
Antonin Raffin @araffin.bsky.social · 02/03/2026
If you are in Europe, applications for the 2026 Reinforcement Learning Summer School are now open! Location: Milan Date: June 3–12, 2026 Website: rlsummerschool.com
rlsummerschool.com
RLSS'26 — Milan
030
Reposted by Antonin Raffin
Carl Boettiger @cboettig.bsky.social · 28/02/2026
folks, please don't submit LLM-generated PRs to open source projects. It makes no sense. If the maintainers want to use an LLM to fix an issue, they can use Claude or whatnot directly. They don't need you as intermediary, that's just silly. If they don't want to use LLMs, they have reasons.
07113
Antonin Raffin @araffin.bsky.social · 21/02/2026
Thanks to the MyST parser and rst-to-myst, you can easily convert your documentation to Markdown while still keeping all the features of Sphinx =) github.com/DLR-RM/stabl...
github.com
Switch to Markdown documentation (MyST parser) by araffin · Pull Request #2219 · DLR-RM/stable-baselines3
Description You can see the doc here: https://stable-baselines3.readthedocs.io/en/md-doc/ Should be identical to the rst one (I use the auto migrate tool and then fixed errors manually). For examp...
010
Reposted by Antonin Raffin
Antonin Raffin @araffin.bsky.social · 11/02/2026
The talk i gave about "Recent Advances in RL for Continuous Control" at CERN last year is now online =) www.youtube.com/watch?v=Sb0d...
youtube.com
Recent Advances in RL for Continuous Control (SOTA 2025) | CERN ML Workshop
YouTube video by Antonin Raffin
1164
Reposted by Antonin Raffin
Ryan Schmidt @rms80.bsky.social · 11/02/2026
nice blog post about a humanoid robotics startup failure: ruixu.us/posts/six-th...
ruixu.us
Six Things I Learned Watching a Robotics Startup Die from the Inside | Rui Xu
I spent a year as COO of a YC-backed robotics startup. The company didn't make it. Here's what I actually learned.
0103
Antonin Raffin @araffin.bsky.social · 11/02/2026
The talk i gave about "Recent Advances in RL for Continuous Control" at CERN last year is now online =) www.youtube.com/watch?v=Sb0d...
youtube.com
Recent Advances in RL for Continuous Control (SOTA 2025) | CERN ML Workshop
YouTube video by Antonin Raffin
1164
Reposted by Antonin Raffin
Stefan Judis @stefanjudis.com · 02/02/2026
If you missed this post last week, it explains pretty well how modern frontend works these days. :/ paulmakeswebsite...
To understand how our radio buttons work I need to understand two separate component libraries and hundreds of lines of React.
0182
Antonin Raffin @araffin.bsky.social · 31/01/2026
Q-value overestimation animation for my upcoming talk about "Recent Advances in RL for Continuous Control" at the Mannheim RL Workshop
131
Reposted by Antonin Raffin
Pablo Samuel Castro @pcastr.bsky.social · 29/01/2026
This is something I talk about in my paper, where I suggest being explicit about {\gamma}_train (some methods use multiple gammas during training) and \gamma_eval. One of my students is empirically investigating this and, as one would expect, it can have a huge impact. arxiv.org/abs/2510.16175
arxiv.org
The Formalism-Implementation Gap in Reinforcement Learning Research
The last decade has seen an upswing in interest and adoption of reinforcement learning (RL) techniques, in large part due to its demonstrated capabilities at performing certain tasks at "super-human l...
1121
Reposted by Antonin Raffin
Servo @servo.org · 23/01/2026
December in Servo… 🎤🧑‍🏫 FOSDEM talks next week! 🤹🪟 multiple windows 🪆🌐 HTTP proxy support 🔐🕵️ more SubtleCrypto algorithms 💽🗃️ new site data & network API servo.org/blog/2026/01...
Servo 0.0.4 showing new support for multiple windows
2448
Reposted by Antonin Raffin
Léαlinux 🐧 @lea-linux.org · 18/01/2026
Dr. Who plays with Docker How : docker.how
docker.how
Docker Cheat Sheet — The Ultimate CLI Reference
Comprehensive Docker CLI reference with commands for containers, images, volumes, networks, Compose, and Dockerfile.
3449
Reposted by Antonin Raffin
Typst @typst.app · 13/01/2026
HTML preview & export now available in the web app! With HTML export, you can create a website from the same Typst file as your PDFs. This makes it easy to create documents that feel just as at home on the web as they do in print.
The export and preview menu, with the "PDF" section unfolded.
1496
Reposted by Antonin Raffin
Christian Wolf @chriswolfvision.bsky.social · 12/01/2026
This network analyzer is very efficient and allows you to find interesting accounts, eg. people followed by lots of the people you follow (but not you). bsky-follow-finder.theo.io (Reposting this for folks who have joined Bsky more recently)
2179
Reposted by Antonin Raffin
Google Open Source @opensource.google · 09/01/2026
People wanted our Open Source Organizations starter pack to include many projects, so we decided to give them their own starter pack. go.bsky.app/HvKFRKa
go.bsky.app
Open Source projects
Join the conversation
2296
Antonin Raffin @araffin.bsky.social · 31/12/2025
"uv is fast because of what it doesn’t do, not because of what language it’s written in"
050
Reposted by Antonin Raffin
James MacGlashan @jmac-ai.bsky.social · 26/12/2025
Using AI coding for data analysis without personal programming skill fills me with dread. Small errors in the code poisons results in ways that may not be visibly obvious. LLMs are great when people verify outputs; the path to hell is when they don't.
1234
Reposted by Antonin Raffin
CSML IIT Lab @pontilgroup.bsky.social · 17/12/2025
Almost 5 years in the making... "Hyperparameter Optimization in Machine Learning" is finally out! 📘 We designed this monograph to be self-contained, covering: Grid, Random & Quasi-random search, Bayesian & Multi-fidelity optimization, Gradient-based methods, Meta-learning. arxiv.org/abs/2410.22854
0139
Reposted by Antonin Raffin
Antonin Raffin @araffin.bsky.social · 12/12/2025
A practical introduction to (deep) RL, providing intuitions to understand the more recent algorithms (continued). In this second post, I continue from DQN on to the Soft Actor-Critic (SAC) algorithm and its extensions. araffin.github.io/post/rl103/
araffin.github.io
RL103: From Deep Q-Learning (DQN) to Soft Actor-Critic (SAC) and Beyond | Antonin Raffin | Homepage
This second blog post continues my practical introduction to (deep) reinforcement learning, presenting the main concepts and providing intuitions to understand the more recent Deep RL algorithms. In a...
1164
Reposted by Antonin Raffin
James MacGlashan @jmac-ai.bsky.social · 13/12/2025
What a phenomenal talk by @jenson.org. He works in a very different slice of tech than I do, but his ethos toward developing tech deeply matches my own, and he articulates it so well. I highly recommend watching it, regardless of whether you're interested in UX.
051
Reposted by Antonin Raffin
quokkka.bsky.social @quokkka.bsky.social · 12/12/2025
antonin has been cooking olala
021
Antonin Raffin @araffin.bsky.social · 12/12/2025
A practical introduction to (deep) RL, providing intuitions to understand the more recent algorithms (continued). In this second post, I continue from DQN on to the Soft Actor-Critic (SAC) algorithm and its extensions. araffin.github.io/post/rl103/
araffin.github.io
RL103: From Deep Q-Learning (DQN) to Soft Actor-Critic (SAC) and Beyond | Antonin Raffin | Homepage
This second blog post continues my practical introduction to (deep) reinforcement learning, presenting the main concepts and providing intuitions to understand the more recent Deep RL algorithms. In a...
1164
Reposted by Antonin Raffin
Zed @zed.dev · 10/12/2025
🚀 We just shipped v0.216.0! Word-level diffing just landed. 🎉 It's been a night-and-day difference for us—seeing exactly what changed within each line.
21269