# \[ANN\] JSynth: a visual editor for Julia – wire inputs, functions and plots on a canvas

**URL:** <https://discourse.julialang.org/t/ann-jsynth-a-visual-editor-for-julia-wire-inputs-functions-and-plots-on-a-canvas/139966>\
**Category:** Tooling\
**Created:** [October 12, 2026, 11:32am UTC](https://discourse.julialang.org/t/ann-jsynth-a-visual-editor-for-julia-wire-inputs-functions-and-plots-on-a-canvas/139966 "2026-10-12T11:32:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ozan\_Bora\_Fikir](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ozan_bora_fikir/32/224526_2.png) [@Ozan\_Bora\_Fikir](https://discourse.julialang.org/u/Ozan_Bora_Fikir)\
**Post date:** [October 12, 2026, 11:32am UTC](https://discourse.julialang.org/t/ann-jsynth-a-visual-editor-for-julia-wire-inputs-functions-and-plots-on-a-canvas/139966/1 "2026-10-12T11:32:43Z")

</div>

JSynth is a visual editor for Julia. Wire inputs, functions and plots together on a canvas, run the design with Julia (F5), and see every value on its node. Any design can be exported as a plain Julia script.

 ![JSynth after a run, light theme](https://global.discourse-cdn.com/julialang/original/3X/9/1/91c0b6a3967d05fbccc8384d8cb3b50eeb441759.png)

It runs on Windows, Linux (including WSL) and macOS on Apple Silicon, and is MIT licensed.

**Repository:** [GitHub - ozanbora/JSynth: A visual editor for Julia: wire inputs, functions and plots together on a canvas, run the design with Julia, and see every value on its node. Exports to plain Julia scripts. Windows, Linux and macOS. · GitHub](https://github.com/ozanbora/JSynth)  
**Latest release (1.0.0):** [Release JSynth 1.1.0 · ozanbora/JSynth · GitHub](https://github.com/ozanbora/JSynth/releases/latest)

## How it works

A design is a graph of nodes:

- **Inputs:** numbers, vectors, matrices, sparse matrices, arrays built with `zeros`, `rand`, `range` and friends, and arrays loaded from CSV, Matrix Market (`.mtx`), JLD2 or PNG files.
- **Functions:** Julia code you write, with typed parameters. Each parameter is an input port, and the function’s value is its output.
- **Outputs:** Display, Plot (line, scatter or heatmap) and Save to file.

When you run a design, JSynth turns it into a Julia script and runs it in a Julia session it keeps open. Each node then shows its value, a ✓ or ✗ badge and how long it took.

Designs can also work through data as it comes: files in a folder one at a time, a watched folder or a web address, a timer, or a button. Map, Window, Only when, Zip and Merge apply functions to each value, keep the last few, filter, and combine streams.

## A few other things it does

- **Parameters panel:** set inputs with sliders and boxes; the design runs again a moment after each change.
- **Breakpoints:** pause a run on a wire (F9), optionally on a condition, see the value, then continue or step to the next value.
- **Frames, groups and a library:** box nodes together, turn several nodes into one, and reuse them across designs.
- **Packages** a design uses but doesn’t have are offered for installation.
- **Export** a design as a Julia script, or the canvas as a PNG.
- A light and a dark theme in Julia’s colours.

 ![The dark theme](https://global.discourse-cdn.com/julialang/original/3X/9/d/9d43103b2d0d277aa17a86fdf7a644ced281c554.png)

## Examples

About twenty examples open from the start page, from a loan payment with sliders and Monte Carlo π to PageRank, heat in a rod from a sparse matrix, bearing wear from NASA’s IMS data, the 2019 Ridgecrest earthquake from four seismometers, and live air traffic from the OpenSky Network. Examples with large datasets ask before downloading them.

## Installing it

The install scripts download the latest release, add JSynth to the Start menu or applications menu, and install Julia with juliaup if it isn’t there yet.

Windows (64-bit), in PowerShell:

```julia-auto
irm https://raw.githubusercontent.com/ozanbora/JSynth/master/install/install.ps1 | iex

```

Linux (x64) and macOS (Apple Silicon), in a terminal:

```julia-auto
curl -fsSL https://raw.githubusercontent.com/ozanbora/JSynth/master/install/install.sh | sh

```

Run the script again with `--uninstall` to remove it (on Windows, download it and run `.\install.ps1 -Uninstall`); settings and designs stay. You can also download a file from the release page and unpack it yourself, or build from source with the .NET SDK 10. The README has the details.

Feedback, bug reports and pull requests are welcome. I’d especially like to hear what kinds of work you’d use it for, and what’s missing.
