From Java to JavaScript: I Ported a Full RC Flight Simulator to the Browser

Almost exactly 20 years ago, I started writing an RC flight simulator called ClearView. Today, the same basic flight simulation technology has made another rather large transition: it now runs as a full browser-based RC flight simulator, with no program to download or install.

The path between those two versions says a lot about how much personal computers—and software development—have changed in 20 years.

Why I wrote ClearView in Java

I started ClearView around 2005–2006. At the time, writing a complete RC simulator was a fairly ambitious project for one programmer.

A simulator is much more than drawing an airplane on a screen. It needs rigid-body physics, aerodynamics, control surfaces, engines, gyros, collisions, ground handling, cameras, scenery, user input, configuration screens, model loading and dozens of other systems that all have to work together in real time.

I chose Java for a simple reason: productivity.

There were certainly faster ways to write 3D software at the time, particularly C and C++, but I believed that the additional productivity I could get from Java would make it possible for one person to build and maintain a fairly complex simulator.

I used ODE (Open Dynamics Engine) for rigid-body physics and jMonkeyEngine as the scene graph and 3D engine. On top of that I developed the aerodynamics and RC-specific flight simulation.

That combination worked.

ClearView became a full-featured Windows RC simulator supporting airplanes, helicopters and many different types of RC models and flying environments. Over the years it developed a large user base, and one comment I heard repeatedly was that it was very easy to set up and use while still having a convincing flight model.

I originally priced the personal version at about $40. Rather remarkably, the price is still $39.99 twenty years later.

Then phones changed everything

Years later, smartphones and tablets created an entirely different software platform.

Instead of trying to adapt the original Java program to mobile devices, I created the Absolute RC line of mobile simulators. Those apps were based on what I had learned developing ClearView and used the same general approach to model behavior and flight physics, but technically they were a complete rewrite.

For the mobile version I used Unity.

That turned out to be another long-lived generation of the simulator. The Absolute RC mobile apps have accumulated millions of downloads, and it also taught me something important: an RC simulator does not necessarily need a big desktop computer and specialized hardware to be useful.

A phone is obviously not the same experience as a large monitor with a proper RC transmitter, but if the controls and physics are designed correctly, you can actually have a surprisingly good flying experience on a small device.

Still, I continued to maintain ClearView as a conventional Windows application.

Windows eventually made me reconsider the downloadable application

For many years, downloading and installing a small Windows program was completely normal.

Today it is increasingly unpleasant.

Modern Windows is understandably much more suspicious of executable files downloaded from the Internet. Browsers warn users. Windows adds additional warnings. Security software examines the installer. Users have become conditioned to be suspicious of anything that asks them to download an executable.

From a security perspective, much of this makes sense.

From the perspective of a small independent software developer, however, it means that simply getting someone from a web page into your program has become much more difficult than it used to be.

That made me consider something that would have seemed rather unrealistic when I wrote ClearView:

Why install the simulator at all? Why not run the complete RC simulator directly in the web browser?

So I decided to port ClearView again.

This time, to JavaScript and the modern browser environment.

A web page is now a surprisingly capable computer platform

The browser version is not a video stream of a simulator running somewhere on a server. The simulation actually runs locally on the user's device.

The browser is doing the physics, aerodynamics, graphics and control processing in real time.

Modern browser technology has advanced to the point where this works remarkably well. The current simulator runs its rigid-body physics at 120 Hz and handles the same kinds of RC aircraft and environments that previously required an installed desktop program.

And because the target is now the browser rather than Windows, something very useful happened automatically:

the operating system largely stopped mattering.

The simulator can run on Windows, macOS, Linux and ChromeOS. It can also run on iPhones, iPads and Android phones and tablets.

There is no installer and no plug-in. Open a modern browser and the simulation can run.

That is probably the single largest practical difference between the browser version and the original ClearView.

The biggest surprise was the phone

I expected the desktop browser version to work well.

What surprised me was how well the exact same web application runs on modern phones and tablets.

The browser version has considerably more content than the original mobile applications, yet on current phones the performance is good enough that in normal use it feels remarkably close to running a native mobile simulator.

That was not something I would have predicted when browser applications first appeared.

The same program can therefore be used at a desktop with a large monitor and RC transmitter, on a Chromebook, on an iPad or simply on a phone with touch controls.

There is no separate Windows build, Mac build, Chromebook version and mobile web version. It is fundamentally the same simulator.

A real RC transmitter still makes a big difference

For serious RC practice, I still strongly prefer a real RC-style transmitter.

Modern browsers can read game controllers, so a USB RC simulator transmitter can be connected directly to the computer. Many modern RadioMaster, FrSky, FlySky, Jumper and similar transmitters can also operate as USB HID joystick devices.

The simulator can also use an Xbox-style gamepad, keyboard or touch controls.

That means someone who has never flown RC can try the simulator without buying any hardware, while an experienced pilot can connect a real transmitter and practice with proper sticks and a non-centering throttle.

This is one of those areas where the modern browser is much more capable than many people realize.

From a few models to hundreds

Another advantage of delivering the simulator online is that the content no longer needs to be packaged into a traditional installer.

Over the years, users contributed a very large number of free aircraft and landscapes for ClearView. The browser version now makes all of them available in one place — more than 450 models and landscapes, including trainers, sport planes, warbirds, gliders, EDF jets, turbines, helicopters and other specialized models.

The user does not have to download and install these individually. Selecting a different aircraft or field simply loads the required content.

This changes the economics of an RC simulator as well. I wanted the browser version to be affordable, while still being able to host and maintain a high-traffic website for as long as it takes.

The original ClearView remains available as a traditional Windows program for users who prefer to purchase a permanent offline license.

For the web version, I decided that a subscription made more sense. The complete version is $4.99 per month, and it can be canceled whenever it is no longer needed.

I think this is particularly useful for RC simulation because many people don't necessarily need a simulator twelve months of every year.

A beginner might use it heavily for a month or two while learning to fly. An experienced pilot might come back to practice during winter, before trying a new type of aircraft, or after being away from the hobby.

Someone can therefore have the complete simulator for a month for about $5 and simply stop the subscription when he no longer needs it. For less than the price of a cup of coffee a month — 450 models and flying fields, and thousands of flights (and crashes?). I hope this is a good deal for you, and for your real RC models.

There is also a free subscription so that someone can determine whether it works well on his hardware before paying anything. You can fly up to 10 flights a day, for as long as you want, with a limited but complete selection of models — good enough to learn on.

I also wanted actually getting into the simulator to be frictionless. There's no account to create, and no password to invent, remember, or eventually forget. Your email is your login: type it in, and I send you a magic link — a one-time button waiting in your inbox. Click it, and you're flying.

The link expires after a short time and only works once, which in practice makes it more secure than a typical password. After that first click, your browser remembers you, so none of this repeats the next time you come back.

You're also not locked to one device. Request a magic link from your phone, your laptop, and your work computer, and each one signs in separately — you can be flying on several devices at the same time, all under the same account.

From typing your email to being in the air is about twenty seconds.

Twenty years later, the basic problem hasn't changed

The technology changed enormously between the first version of ClearView and the current browser version.

Java desktop software became Unity mobile applications and eventually became a JavaScript application running inside a browser.

Computers changed. Graphics APIs changed. Phones became powerful 3D computers. Browsers gained hardware-accelerated graphics, game-controller support and enough performance to run serious real-time applications.

But the reason for writing an RC simulator hasn't changed at all.

Learning to fly an RC airplane involves making mistakes.

Making a mistake in software costs nothing.

Making exactly the same mistake with a new RC airplane can cost considerably more.

That was the basic idea behind ClearView in 2005, and it is still the reason I work on the simulator today.

The difference is that now you don't even have to install it.

If you have a reasonably modern device with a browser, you already have most of the hardware required to run an RC flight simulator.

Disclosure

I am the developer of ClearView RC Flight Simulator and Absolute RC Simulator. ClearView is the original Windows simulator I began developing in 2005. Absolute RC is the current browser-based version and mobile simulator family.

You can also find more Absolute RC videos on my YouTube channel: youtube.com/@absoluterc5868.