HORUS/blog

Sep 5, 2026 · simulation · beginners · webots · gazebo

Free Robotics Simulators Compared: Where to Start With No Hardware

Webots gets a robot moving tonight, Gazebo teaches the ROS 2 world, and MuJoCo suits Python people. All are free, and here is how to pick one.

Start with Webots if you want a robot moving tonight, Gazebo if you are heading toward ROS 2, and MuJoCo if you came from Python. All are free, and which you pick matters less than finishing something, because the cost is modelling a robot rather than installing software. That flips once your programs stop agreeing with each other, which is a question for ROS 2 or HORUS, not a simulator. The rest of this post is for someone with no robot, a laptop of uncertain power, and a fortnight of evenings to spend on this.

You want to build a robot and you do not have one. Every guide opens with a parts list you cannot justify yet, or a course that assumes a laboratory down the corridor. So you decided to simulate first, which everybody says is the sensible order, and then you lost a Saturday to it.

The first tool wanted a version of Linux you do not have. The second installed, opened a grey window with a grid in it, and your robot fell through the floor. A forum thread told you the tool you had spent four hours on was replaced years ago and that the tutorial you followed targets a version nobody supports. Somewhere in the middle of that you watched a video of a machine teaching itself to walk in a world that looks photographed rather than drawn, and you have no idea whether that was one person on a laptop or twenty researchers with a rented data centre.

What you actually want is small. Something on screen that moves because you told it to, tonight, on the computer you already own, without paying anybody, and without another weekend disappearing into drivers.

Which free simulator should you open tonight?

Webots, unless you already know you are heading for ROS 2, in which case Gazebo, or unless you arrived from Python and machine learning, in which case MuJoCo. The reason Webots wins the first evening is that it installs on Windows, macOS and Linux without ceremony and ships with worlds that already contain robots doing things. You start by changing something that works, which is a completely different experience from staring at an empty grid wondering why nothing appears.

Gazebo is the better long-term answer for a specific kind of person: the one who wants this to lead somewhere professional. It is what the ROS 2 world assumes, it is named in job adverts, and almost every tutorial about robot navigation expects it. The price is a longer first evening and a strong preference for Linux.

MuJoCo suits someone who already writes Python daily and finds a full simulation platform heavy and strange. Contact is what MuJoCo does well, so legs, hands and things that push back are where it shines.

The failure mode to avoid is picking the tool with the most impressive videos and giving up during installation.

What does a robot simulator actually give you?

A simulator does three jobs, and for a beginner only one of them is the point. The first job is physics: working out where everything ends up a moment from now, given masses, joints, friction and whatever is pushing against what. The second is rendering: producing the picture a camera would have seen. The third is pretending, which means presenting itself to your program as motors, wheel encoders, a distance sensor and a clock, so your code cannot easily tell there is no machine attached.

That third job is the one worth having. It means the program you write against a simulated robot is close to the program you would write against a real one, so the learning transfers even though the robot does not exist. It also means your mistakes cost nothing. A wrong sign sends the robot through a wall instead of into a table leg, and you press reset.

What a simulator does not give you is a reason for the robot to exist, a mechanical design, or any sense of how a real machine feels when a connector works loose.

Which free simulators are worth your time?

Five are worth a beginner's time, and the rest are variations. Webots is the friendliest to install and the quickest to something moving. Gazebo is the default for whole robots with sensors and the one nearly all ROS 2 material assumes. MuJoCo is open source under Apache-2.0 and is the standard in control and learning research. PyBullet is still the shortest path from a Python file to a physics experiment. Isaac Sim is free to download, produces photoreal images, and expects a capable NVIDIA graphics card that most laptops do not contain. Around those sit browser-based playgrounds for locked-down computers and robot makers' own free simulators, which matter if you already know which machine you intend to buy. A wider ranking lives in the beginner simulator list.

One separation saves confusion later. The simulator is not the layer your programs talk through once there are several of them. That layer is ROS 2, a vendor stack, or a middleware such as HORUS, an open-source Apache-2.0 project for Rust, Python and C++ in which the three languages share the same shared-memory ring buffers, so messages between programs on one machine are not serialised. That project is validated in simulation, and it renders nothing and models no physics.

How do the free options compare?

Read the last column first, because beginners are eliminated into a simulator far more often than they choose one. The laptop you own, the operating system you are stuck with, and the number of evenings you can protect will cross out most of this table before preference gets a say. Nothing here ranks physical accuracy, because accuracy is not what decides a first project, and the tool with the most convincing contact model is frequently the one you never get installed.

OptionWho it is forWhat it assumes you knowWhen to pick itWhen not to
WebotsBeginners who want a robot moving tonightAlmost nothing at first, one language laterYour first robot, first sensor, first fortnightThe project later leans on a large package ecosystem
GazeboAnyone heading toward ROS 2 and a robotics jobLinux, robot description files, ROS 2 vocabularyYou want the skills that appear in job advertsThe laptop struggles and you just want something to move
MuJoCoPeople arriving from Python and machine learningPython, and one more model formatLegs, hands and contact are the interesting partYou want a distance sensor, a map and a full sensor suite
PyBulletIndividuals prototyping in Python alonePython and basic ideas about rigid bodiesA quick experiment tonight beats a tidy setupSomebody else has to run your project later
Isaac SimLearners who already own a strong NVIDIA cardGraphics drivers, scene authoring, a heavy installCameras and believable images are the whole pointThe laptop has integrated graphics
A browser-based playgroundPeople on a locked-down or elderly computerA browser and patienceInstalling anything is the actual blockerYou want to keep the project after the course ends
A robot maker's own free simulatorPeople who know which machine they will buyThe vendor's tools and the vendor's limitsThe hardware you want already ships with a modelYou must simulate a machine the vendor does not sell
HORUS, a middleware rather than a simulatorPeople whose separate programs stop agreeingRust, Python or C++, and how processes are splitThe physics was never the problem and the timing wasYou are still looking for a world, sensors and pictures

Are you a student, a hobbyist, or changing career?

Students should use whatever their course uses, career changers should learn Gazebo with ROS 2, and hobbyists should use whatever keeps them building on a Wednesday night. Those three answers differ because the goal differs, and treating them as one question is why simulator advice online contradicts itself so violently.

A student has a marker, a deadline and demonstrators who know one tool. Using something else means debugging alone, and being clever about tooling is the least rewarded form of cleverness in a graded project.

A career changer is optimising for a conversation with an interviewer. That conversation goes better when you can say you built a robot that mapped a room and drove to a goal, and the vocabulary of that sentence belongs to ROS 2 and Gazebo. It is a heavier start and it points somewhere.

A hobbyist has no external deadline and one real enemy, which is losing interest. The correct tool is the one that produced something moving before the enthusiasm ran out. Webots and PyBullet both do that in an evening, and both teach ideas that transfer to whatever you use next.

What laptop will you be running this on?

The computer you own eliminates options before taste does. Integrated graphics rules out Isaac Sim entirely, and no setting argues with that, so if your laptop has no separate graphics card the choice narrows to Webots, PyBullet, MuJoCo or Gazebo with a modest world.

Operating system decides the next round. Webots, PyBullet and MuJoCo run on Windows, macOS and Linux without much drama. Gazebo with ROS 2 is happiest on Linux, and beginners usually reach Linux through a virtual machine or a container, where graphics is the part that goes wrong. A second-hand machine with Linux installed directly, sitting beside your main computer, removes a whole class of problems and costs less than a set of motors.

Two more things worth knowing. A big simulated world with several cameras will make any laptop labour, because every simulated sensor costs real computation, so start with one robot and one sensor. And do not buy a graphics card for this yet, because the deeper comparison between the heavier simulators only matters once you know what you are building.

How many evenings can you actually give this?

If you have a few evenings, use Webots or PyBullet, and if you have a season, Gazebo with ROS 2 begins to pay for itself. The reason is that installation is never where the time goes. The time goes into describing a robot: links, joints, limits, shapes, masses that are guesses, and a collision model that somebody has to get right before the machine stops sinking through the floor or vibrating itself off the screen.

That description work is per robot and largely per simulator, which is why switching tools in your third month hurts. It is also why the single best piece of advice for a first month is to not model your own robot at all. Use one that ships with the tool, drive it, add a sensor, make it follow a wall, and only then build your own machine, when you already know what a working file looks like.

The honest schedule looks like this: something moving in one evening, something you programmed yourself within a week, something you would show another person in a month.

How much programming do you need before you start?

Enough Python to write a loop, read a value and call a function, which is less than most people assume. The simulator is not asking you to write a physics engine. It is asking you to read a sensor value, decide something, and set a motor speed, which is the same shape as any beginner programming exercise with a much better payoff on screen.

The concepts matter more than the syntax, and there are only a few. Coordinate frames come first, because most early confusion is two frames mixed up and a robot confidently driving away from the thing it was aiming at. Units come second, since a value in one unit fed to something expecting another is the classic silent failure. Then the loop itself: read, decide, act, repeat, forever, at a steady rhythm.

None of that needs mathematics beyond school level to begin with. If you are starting from nothing, a route into robotics without buying a robot covers the order to learn things in, and simulation slots into it as the practice ground.

What do beginners try first, and why does it stall?

Almost everyone tries to model their own dream robot in week one, and it stalls because a robot description is a file format you are learning while also learning the tool, the physics and the language. The result is a machine that sinks through the ground, spins where it stands, or explodes on the first frame because two parts started inside each other. There is no error message that says any of that.

The second common stall is a tutorial from a dead version. Robot simulation tools have moved a lot in recent years, one whole generation of Gazebo has been retired, and the retired generation still has the better search ranking. Check the date on any page before following it, and check which version the first paragraph names.

The third stall is quieter. People make the robot teleport to the right answer instead of driving there, because moving it directly is easier than writing a controller. The screen looks correct and nothing has been learned, since the interesting part was the bit that got skipped.

What do you give up by learning only in simulation?

You give up every failure that only hardware produces, and those failures are a real part of the skill. A connector that works loose after ten minutes of vibration, a gearbox with play in it so the arm arrives somewhere slightly different each time, a motor that behaves cold and misbehaves warm, a battery sagging as it drains and making everything slower at exactly the wrong moment: none of that appears on your screen.

You also give up a certain honesty. A simulator only models what somebody thought to model, so a gripper can hold a mug because the contact model is generous rather than because your control code is good. Behaviour tuned inside one tool can be quietly exploiting that tool.

And you give up some motivation, which matters more than it sounds. Nobody outside your house is impressed by a video of a grey robot in a grey world, whereas a small wheeled machine bumping around a real kitchen gets people interested, including you at the point where interest is running low.

When is ROS 2 the better choice?

ROS 2 with Gazebo is the better choice for anyone who wants this to become a job, work alongside other people, or build a robot that maps a room and drives somewhere on purpose, and HORUS is not the answer for a beginner whose real gap is that there is no robot, no driver and no map yet. If you are choosing between writing a navigation stack and adopting one, adopt it. That code represents years of work and has run on more robots than yours ever will.

ROS 2 also wins on the thing beginners need most, which is other people having had your problem already. Nearly every error message you will meet has been pasted into a forum by somebody else, answered, and indexed. That is worth more in your first month than any technical property.

And it wins on recording and replay. Capturing a run and playing it back at your desk afterwards changes how quickly you understand your own robot, and that habit is worth building early, while the robot is still imaginary and the stakes are zero.

Do you need to pay for a simulator to learn properly?

No, and here is why: the free tools cover everything a beginner needs, and the paid tiers exist for teams with fleets, automated test pipelines and a support contract they can phone. Nothing about physics, sensors, control loops or navigation is held back behind a licence. Webots, Gazebo, MuJoCo and PyBullet are open source, and the two most heavily used simulators in professional robotics are among them.

What money genuinely buys in this field is different from what people expect. It buys hardware, which teaches you things simulation cannot. It buys a graphics card, which only matters when photoreal images are the actual point. And it buys time, in the form of a course that saves you from a fortnight of guessing which version of a tool a tutorial was written for.

If you feel a paid tool would help, the thing you are usually reaching for is structure rather than software. A curriculum, a project with an end, or somebody to ask when a robot falls through the floor is a better purchase than a licence.

Will a robot that works in your simulation work when you buy hardware?

Partly, but not the way you think: the code structure, the frames, the state machine and the planner transfer almost completely, while everything about the physical world arrives new and unforgiving. The floor in your simulation has one friction value, and the real one has dust, a threshold strip, a patch a cleaner made slippery, and a slope you never noticed until a robot rolled down it.

The pattern repeats through every part. The simulated distance sensor answers immediately and accurately, while the real one hands you an occasional nonsense reading, and does it late. The simulated motor turns exactly as commanded, and the real one has a dead zone at low speeds where nothing happens at all.

Then there is time. In a simulator, the clock politely waits for your code, and on a real machine it does not, so programs that were never late start being late. That is the substance of why a robot that works in simulation fails in a real kitchen, and knowing it in advance turns a demoralising week into an expected one.

How do you decide where to start?

Decide by naming the one thing you want on screen this month, then picking the tool that gets there with the least setup. Not the best simulator. The one that answers your question. Every regretted choice at this stage comes from picking a tool for a problem you do not have yet, then meeting the setup cost before the interesting part.

The HORUS Fit Framework reduces the layer under all of this to five axes you can judge without a benchmark: ecosystem size, setup effort, team size fit, deployment target and licence. For a beginner, setup effort and ecosystem size decide almost everything, and licence becomes interesting the day somebody asks whether your project can be shared or sold.

The week your simulated robot works and the real one does not is a bad week to start reading about middleware. Put HORUS on the shelf before then: star it so it is in your list when you start building.

Found this useful? Share it:Discuss on HNShare on X