Skip to content
← All posts
8 min read

An openEMS alternative with a GUI, a GPU solver, and live results

Short answer
openEMS is a free, open-source FDTD engine that is genuinely capable, but it has no real GUI, needs MATLAB or Python scripting, and runs on the CPU. RayRF is a commercial alternative with a native editor, a CUDA GPU solver, and integrated post-processing. On a head-to-head patch run, the RayRF GPU solver was 68.5x faster on the same machine.

If you have used openEMS, you already know the trade. It is free, it is accurate, and the physics is solid. You pay for that with scripting, manual meshing, CPU-only run times, and a workflow stitched together from separate tools. This post is an honest look at where openEMS is strong, where it hurts, and what RayRF does differently.

We are not here to dunk on openEMS. It is a real contribution to the field and the right tool for plenty of people. The point is narrower: if the scripting and the wait times are the reason you avoid full-wave simulation, there is now a different option.

What openEMS does well

  • It is free and open source. No license, no seat count, no renewal.
  • The FDTD core is well understood and has been used in published work for years.
  • It is fully scriptable, so it drops into automated pipelines and parameter sweeps if you are willing to write the code.
  • It runs on Windows, Linux, and macOS, on any CPU.

Where openEMS gets in the way

The friction is not the physics, it is everything around it. A typical openEMS project is 50 to 200 lines of MATLAB or Python before you see a result. You define geometry in code, build the mesh by hand, run the solver from a script, then load the output into another tool to look at S-parameters or a radiation pattern. Each change means editing the script and waiting for a CPU run.

  • No integrated GUI for drawing or editing a board.
  • Manual mesh definition, which is where most accuracy bugs live.
  • CPU-only, so larger meshes turn into long waits.
  • Post-processing is a separate step in separate tools, not a tab next to the editor.

What RayRF changes

RayRF puts the whole loop in one window. You draw or import a board in a layer-based 2D editor, set the stackup and ports, slide a single quality preset, and click Run. The mesh is derived for you, with a manual override panel if you want it. The solver runs on your NVIDIA GPU and the S-parameter curves update while it runs. Smith chart, 2D and 3D radiation patterns, volumetric fields, and surface currents are all tabs in the same app.

The honest limit
RayRF is purpose-built for planar PCB RF: microstrip, CPW, patches, filters, couplers. It is not a general 3D multiphysics package and does not try to be a CST or HFSS replacement. It needs an NVIDIA GPU for full speed. If those rule it out for you, openEMS or a commercial enterprise tool may be the better choice.

Speed, on the same problem

Numbers only mean something when both tools run the same work. The case below is a 5.8 GHz patch on a 46.8M-cell mesh, stepped 5,000 times, with RayRF and openEMS solving the identical setup on the same workstation (RTX 5070 Ti GPU, Ryzen 9 9950X CPU). These are the same numbers shown on the benchmarks page.

One head-to-head case: a 46.8M-cell mesh of a 5.8 GHz patch, 5,000 timesteps, same workstation. openEMS meshes 0.46 percent fewer cells, so if anything the comparison runs against RayRF. These are the numbers on the benchmarks page.
EngineThroughputWall-clockSpeedup
RayRF GPU (RTX 5070 Ti)9,843 MCell/s25.4 s68.5x
RayRF CPU (Ryzen 9 9950X)623 MCell/s6 m 17 s4.3x
openEMS (CPU SSE)144 MCell/s27 m 44 s1.0x (baseline)

The point is not the exact multiple, it is the difference between a 25 second answer and a 28 minute one. RayRF on the same CPU as openEMS still runs about 4.3x faster, so the gap is not only the GPU. That difference is what makes an interactive workflow possible at all.

Does the answer match hardware

Speed is worthless if the result is wrong. RayRF has been checked against 43 structures measured on a physical VNA, including patch antennas, a dual-band patch, and an interdigital bandpass filter. For many of those the resonant or pole frequencies track the measurement within 1 percent across the band. The 9 most representative are shown side by side on the validation page, and the head-to-head timing setup is on the benchmarks page.

Which one should you use

  • Stay on openEMS if free is what matters most, you are comfortable scripting, you need macOS or non-NVIDIA hardware, or your work is outside planar PCB RF.
  • Try RayRF if you want to draw a board and get S-parameters in minutes, you have an NVIDIA GPU, and the scripting and wait times are the reason you skip simulation today.

Frequently asked questions

Is there a free GUI for openEMS?
jPCBSim is a community front end that drives openEMS, and AppCSXCAD ships with openEMS for viewing geometry. Neither is a full integrated editor with live results. RayRF is a paid commercial tool that gives you a native editor, a GPU solver, and integrated post-processing in one window, with a 30-day free trial.
How much faster than openEMS is RayRF?
On one head-to-head case (a 46.8 million cell mesh of a 5.8 GHz patch, stepped 5,000 times, same workstation), the RayRF GPU solver ran 68.5x faster than openEMS: 9,843 versus 144 MCell per second, a 25.4 second solve versus 27 minutes 44 seconds. These are the numbers on the benchmarks page.
Does RayRF replace openEMS for everyone?
No. openEMS is free, open source, scriptable, and runs anywhere. If you are happy writing MATLAB or Python, do not need a GUI, and do not have an NVIDIA GPU, openEMS may be the better fit. RayRF is for people who want to draw a board and get results quickly without scripting.
Do I need an NVIDIA GPU to use RayRF?
A CUDA-capable NVIDIA GPU gives the full speed. RayRF also ships a CPU fallback build that still runs several times faster than openEMS on the same CPU, so you can evaluate it without a GPU.
Is RayRF accurate compared to measurements?
RayRF has been validated against 43 structures measured on a physical VNA, with the 9 most representative shown on the validation page. For many patch antennas and filters the resonant and pole frequencies track the measurement within 1 percent across the band.
Try RayRF on your own design

Draw a board, slide the quality preset, and click Run. 30-day free trial, no card required. Windows and Linux.

Start the free trial
openEMSFDTDcomparison