JC-PICInteractive Kinetic (PIC-MCC) Plasma Simulation

A friendly front end for serious plasma physics.

For research and education · Open to everyone · No coding required

JC-PIC is a 1D3V Particle-In-Cell / Monte Carlo Collision code for low-pressure, weakly ionized plasmas — as encountered in plasma processing and gaseous electronics. A built-in Swarm mode also computes electron transport coefficients, by Monte-Carlo simulation.

Set up a case, click Run, and watch the plasma evolve through a dozen live viewers — no programming required. A validated Fortran engine behind a graphical interface, distributed free of charge for teaching and research.

Free · Windows desktop · No account, no telemetry, no internet required · Bundled with a library of documented cases

JC-PIC — Particle-In-Cell Monte Carlo Collisions
Three goals

JC-PIC was built with three goals in mind

Everything on this site — the bundled cases, the interface, the way the code was written — follows from these three objectives.

🔬

1 · Interactively explore the physics

Revisit the physics of low-temperature plasmas through a curated library of PIC-MCC simulations. Reproduce the key conclusions of recent publications in one dimension — each presented as a documented, ready-to-run, and fully interactive case. Every case can be read online before installing anything.

🎓

2 · Open to research and education

Provide a robust, user-friendly PIC-MCC code usable by experimentalists, students, and teachers, with no programming required. Users can explore complex dynamics instantly and contribute their own setups to a growing, collaborative resource.

🤖

3 · Built with AI under scientific direction

Demonstrate how a high-performance research code and its complete graphical interface can be developed with the assistance of Anthropic's Claude AI. This synergy between expert scientific direction and AI made a tool of this scope a reality. See the account below.

The background: PIC-MCC solvers have been used extensively over the last two decades to study low-temperature plasmas. Thanks to these kinetic models, many complex phenomena central to practical plasma applications — electron power absorption in RF discharges, instabilities in the magnetized plasmas of electric thrusters and magnetrons, the role of secondary electron emission, striations in plasma columns — are now far better understood. JC-PIC distils this body of work into a tool anyone can run.

Capabilities & bundled cases

What JC-PIC can simulate

One spatial dimension, three velocity components, electrostatic fields with an external magnetic field, and Monte Carlo collisions with the neutral gas — covering a broad range of low-temperature discharge configurations. Each configuration ships as a documented, ready-to-run bundled case: pick one close to your problem, reproduce it, then vary the parameters from there.

🧪

Basic plasma physics

The fundamentals as ready-to-run experiments: sheaths and the plasma potential, Langmuir and ion-acoustic waves — with the built-in (k, ω) Fourier analysis to see their dispersion — plasma expansion into vacuum, ambipolar collisional diffusion, wave breaking and Landau damping.

Cases in the library →
📡

RF capacitive discharges

Single- and multi-frequency capacitively coupled plasmas driven by prescribed voltage waveforms, including the dual-frequency electrical asymmetry effect and electron power-absorption analysis. Influence of pressure, frequency and magnetic field.

Cases in the library →

DC & transient glow discharges

Direct-current glow discharges with secondary emission, with or without a superimposed RF component, plus pulsed plasma-immersion ion implantation with fast sheath expansion.

Cases in the library →
🌫️

Positive column & striations

The axial structure of a long discharge in periodic mode: ionization waves (striations) in DC and RF columns, radial non-equilibrium, and the Hall effect.

Cases in the library →
🧲

Magnetized & E×B plasmas

A weak external magnetic field, and Hall-thruster-style azimuthal E×B configurations exhibiting the electron-cyclotron drift instability. Hall effect in a magnetized plasma column.

Cases in the library →
🔌

Emissive cathodes & vacuum diodes

Space-charge-limited current (Child–Langmuir), virtual-cathode oscillations, thermionic emission and self-sustained thermionic discharge regimes.

Cases in the library →
〰️

Kinetic beam instabilities

The classic two-stream, Buneman and beam–plasma instabilities in their cleanest periodic form.

Cases in the library →
🐝

Swarm mode

A second, autonomous Monte-Carlo engine computes the electron transport and rate coefficients — drift velocity, mobility, diffusion, ionization/excitation rates, mean energy, EEPF and its anisotropy — as functions of the reduced field E/N, with statistical error bars.

Cases in the library →

Secondary electron emission, cathode emission (cold, beam, thermionic), full electron & ion Monte Carlo collisions (elastic, excitation, ionization, charge exchange) — and, optionally, electron–electron Coulomb collisions — are all built in, using cross-section tables loaded at startup.

Most cases ship with a precomputed snapshot, so they can be visualized the moment they load — and the library is collaborative: a case you build can later be folded into the shared library.

The interface

A research code that behaves like an experiment

Everything is organized so you interact with the plasma the way you would with a piece of laboratory hardware.

⚙️

Tabbed Conditions dialog

Dozens of physical and numerical parameters — gas, pressure, voltages, frequency, fields, diagnostics — organized into intuitive categories instead of a cryptic input file.

📚

Curated case browser

Walk a tree of preconfigured cases, read its Markdown description, and load it into your own working directory in one click. The recommended entry point — and the same tree is browsable online.

📊

A dozen live viewers

Density profiles, position–time diagrams with full (k, ω) Fourier analysis, phase space, EEPF (1D & 2D), ion/electron energy distributions, current histories and spectra, per-process collision frequencies, the Schulze power decomposition, and more.

💾

Persistent state

Results are written to disk continuously and survive restarts. Pause, stop, and resume a run at any later time — even on another machine pointing to the same folder.

🚀

Parallel Fortran engine

The simulation core is modern Fortran parallelized with OpenMP, automatically using every core. A typical capacitive-RF case runs in a few hours on an ordinary desktop.

🔓

Local-first & transparent

No cloud, no telemetry, no account. Plain-text namelists, Markdown descriptions, JSON metadata and documented binary snapshots — your data stays fully accessible.

Validation

How JC-PIC is validated

JC-PIC's results are checked in three independent ways: against an independent code, against a community benchmark, and against the published literature.

Cross-comparison with an independent code

Results are cross-checked against J-PIC, the earlier particle-in-cell code of the author, J.-P. Boeuf, developed independently and used in several published studies.

Community benchmark

JC-PIC reproduces the four-case capacitively-coupled RF benchmark of Turner et al. (Phys. Plasmas, 2013) — the standard verification test for low-temperature PIC codes.

The published record

Many of the bundled cases reproduce published PIC-MCC results — emissive cathodes, DC and RF discharges, striations, magnetized E×B plasmas, beam instabilities — with the original papers cited in each case description: browse the case library. Others check the code against a classical analytical solution — the Bohm criterion, the Child–Langmuir law, Landau damping, the Chodura sheath — and each case description says which of the two it is.

The Swarm mode has its own reference chain: its transport and rate coefficients are checked against BOLSIG+ on the same cross sections and against the Monte-Carlo swarm literature (Hagelaar, Phys. Plasmas 32, 043501, 2025).

Examples

Example results & animations

Phase-space and profile animations exported from JC-PIC's diagnostic viewers — each from a bundled case that can be loaded and reproduced.

Symmetric two-stream instability — phase space

Two-stream instability

Counter-streaming beams wind phase space into cat's-eye vortices.

Virtual cathode oscillations — phase space

Virtual-cathode oscillations

A beam above the space-charge limit traps and reflects electrons.

Beam-plasma instability — phase space

Beam–plasma instability

A dilute fast beam destabilizes against a dense background.

An AI-driven development

JC-PIC has the unusual characteristic of having been written almost entirely by an artificial intelligence — Anthropic's Claude — working under the scientific direction of the author.

The Fortran/OpenMP engine, the Python interface, the viewers, the case browser, the build pipeline and the user manual were produced from natural-language specifications. The human contribution focused on the physics requirements, the validation against benchmarks and the published literature, and the iterative refinement of the user experience.

The physics algorithms — the Boris pusher, the null-collision MCC scheme, the Poisson solvers, the secondary-emission model — were implemented correctly, close to their final form, on early attempts; development effort that would normally span many months was compressed into weeks. An account of this development method is given in the user manual.

The same approach was used by the author to build LibrAIry ↗, a desktop reference manager and private AI assistant for organizing and analyzing scientific PDFs.

Scientific direction (human)

Physics requirements and equations, choice of algorithms, validation against benchmarks and published results, design and curation of the case library, testing.

Implementation (AI)

Essentially all of the Fortran engine and Python interface, the diagnostics and viewers, the documentation, the build and packaging pipeline.

Tutorial

Video tutorial

A complete walkthrough — from loading a bundled case to running it and reading the diagnostics in the viewers.

🎬

Tutorial in preparation

A guided video walkthrough of the interface and viewers is being prepared and will be embedded here.

Free software · No account, no telemetry

Download JC-PIC

JC-PIC v1.0 is available for download. A single installer bundles the simulation engine, the graphical interface, the cross-section data files and the full test-case library. No administrator privileges needed.

🪟

Windows

Windows 10 / 11 (64-bit)
Download
🐧

Linux

From source
Planned
🍏

macOS

Apple Silicon & Intel
Planned

⚠️ Windows will warn you the first time. Here is exactly what to do.

The first time you run the installer, Windows very probably shows a full-screen blue panel headed “Windows protected your PC”, offering what looks like a single button: Don't run. Do not stop there — the link you need is small and easy to miss.

  1. Click More info, the small link just under the message.
  2. The panel expands and shows the file name. Check that it is the installer you downloaded from this page.
  3. Click Run anyway. The setup wizard then takes under a minute.

Why this happens, and why it is not an alarm. SmartScreen is not an antivirus and this is not a virus detection: it reports that the file has no download history yet. A program published by a single academic group starts with none, and each new version starts again from zero. The installer is also not code-signed at this stage, which is what would otherwise shorten the period during which the warning appears.

Download JC-PIC only from jc-pic.org. If you meet this blue panel after downloading from anywhere else, the right answer really is Don't run.

A possible alternative later — the Microsoft Store. Publishing through the Store would remove this screen altogether, since a Store app is vetted by Microsoft and updated by Windows itself. JC-PIC is not on the Store today and no date is promised; if that changes, this page will link to it. Until then, the three steps above are the way in.

New to JC-PIC? See the quick-start steps just below.

How to cite. Publications using JC-PIC should cite its companion book: J.-P. Boeuf, Physics of Low Temperature Plasmas via Particle Simulation — the JC-PIC test-case library, Zenodo (2026), doi:10.5281/zenodo.22258142 (CC BY 4.0). The software itself is free of charge under its own licence.
The installer is archived on Zenodo as doi:10.5281/zenodo.22284514 — this identifier always leads to the latest release. It identifies the software; the reference to cite is the book above.

Quick start

From install to a running plasma

Four steps. The bundled case library is the recommended entry point — no blank configuration to fill in. You can read it online first to pick the case you want.

1

Install & launch

Run the installer, open JC-PIC, and choose a working folder where your runs will live. Each simulation is just a self-contained folder on your disk.

2

Load a case

Open Input → Load Test Cases…, browse the library, and pick a case close to what you have in mind. JC-PIC copies it into your working folder.

3

Run it

Click Run to start from t = 0, or open the bundled snapshot for an instant quasi-steady view. Results are written to disk as it goes.

4

Watch & explore

Open the live viewers — density profiles, phase space, EEPF, wall fluxes — then vary the pressure, voltage, frequency or field and see how the discharge responds.

A paused or stopped run can be resumed at any later time — even on another machine pointing to the same folder. The full procedure is covered in the user manual.

Contribute & report

JC-PIC gets better when you write to me

The code is maintained by one person. Two things help more than anything else: telling me when something breaks, and sending me the discharge you would like to see in the case library.

🐞

Found a bug? Please report it

Anything that crashes, hangs, plots the wrong thing, or simply does not behave the way the manual says. Small oddities are worth reporting too — they are usually the visible end of something larger.

What helps me reproduce it:

  • What you did, and what you expected instead
  • Your input.nml (or the name of the bundled case)
  • The jcpic.log file from your working folder
  • A screenshot, if it is something you can see
📄

Propose a case for the library

The case library is meant to grow. If you have a discharge worth sharing — a configuration from your own work, a published result you have reproduced, or an example you use for teaching — send it and I will add it, with your name on it.

A complete contribution is:

  • The input.nml, and a snapshot if the case is slow to converge
  • A short text: what the case shows, what to look at, what to vary
  • The reference it reproduces, if there is one
  • Any figure you would like shown alongside it

The easiest way to prepare it: in JC-PIC, Input → Load Test Cases… → Add my case… turns your working folder into a case of your own, with a description you complete with Edit info; then send me that folder. Cases that are integrated into the library are published under your name, in the application, on this site and in the book.

Questions about the physics, the numerics or a result you do not understand are welcome at the same addresses.