Get a beta key
Menu
Batch solving

Library & batch export

The Library tab lets you browse your collection of solved .art files and batch-export them for the companion viewer app. This page covers the folder tree, the export queue, targeting, formats, and resume behavior.

Is ART/GTO open source?

No. The solver itself is a commercial desktop app. What is open is the output: the .artgto format is documented so you can read your solutions with your own tools, convert ranges and build apps on top of them.

The full layout of a file — header, sections, index, and how the numbers are stored — is written down in File formats. If you would rather look at a solution than parse one, the browser viewer opens exports with nothing to install.

What's in a solver output file

A .artgto export is one file per solved spot. Reading one from your own code means walking four parts:

PartWhat it holds
HeaderThe ARTG signature, the format version (currently 1), and a pointer to the index at the end of the file
Manifest sectionThe preflop, flop and turn strategy nodes
Street sectionsOne compressed section per turn card, and one per turn + river pair
IndexWhere every section sits in the file, preview metadata (board, ranges, pot), and a precision string (currently u8)

A strategy node is one decision point in the game tree: the actions available there and, for every combo in the acting player's range, the frequency of each action. Frequencies are stored in 8-bit form — 0 to 255 per action, summing to 255 for each combo — and the precision string tells your reader how to scale them back to percentages.

Because the index sits at the end and lists every section, a reader can fetch the header, then the index, then only the sections it actually needs. That is how the web viewer opens a large export without reading the whole file.

Note
Two things are deliberately not in the file: the solver's internal regret data and the EV caches. An export carries strategies, ranges and the spot's settings — not the working state of the solve — which is why an export is for reading, not for resuming a solve.

Converting ranges and exporting results

What the app supports today:

  • Range text in and out. The Range Editor's Text card reads shorthand (AA, AKs:0.5), exact combos (8d7h), + expansions (JJ+) and PioSOLVER weight blocks ([50.0]…[/50.0]); ranges pasted from GTO Wizard work as-is. Export range turns the current range back into that same text, grouped by weight, ready to paste elsewhere. Ranges has the full syntax table.
  • Range files inside an export. Every export ships a ranges\ folder with one subfolder per position and plain text, comma-separated combo lists — readable with any text editor or script.
  • Two export formats. .artgto, the single-file default the viewer reads, and a legacy JSON folder of .json.zst files for third-party tooling. Both are described in File formats.

There is no converter to other solvers' proprietary solution formats, and nothing beyond the range text above converts between range formats.

The folder tree

Open the Library tab and pick a library root — the top-level folder that holds your solved spots, typically organized as library/<pot-type>/<position-pair>/. The left pane shows a recursive folder tree rooted there.

screenshot
Library tab with the folder tree expanded, a few folders checked

Click a folder's checkbox to add it to the export queue. Click the folder name to select it and see its contents in the right pane. Use the Refresh tree button if you have added or removed .art files outside the app.

Tip
You can set the library root folder in Settings → Folders as well. It persists across restarts.

The export queue

Checked folders appear in the export queue at the bottom of the Library tab. The queue is persistent — it survives app restarts, just like the Jobs queue. You do not lose your selection if you close the app overnight.

Each row shows the folder path, a destination (where the exported files will go), and a count of pending spots. When Skip already exported is on (the default), the pending count reflects only the spots that have not been exported yet, not the entire folder.

screenshot
export queue with several rows, one showing "12 pending"

Targeting destinations

You can set each row's destination individually with its Browse button. But for a large library, two bulk-targeting tools save time:

  • Target pattern. Type a pattern like D:\export\{rel_path} in the TARGET PATTERN field and click Apply to all. The {rel_path} placeholder is replaced with each folder's path relative to the library root. Every row gets a destination in one click.
  • Match folder. Click Match folder… and pick the parent of your export tree. For every queued folder whose library subfolder (e.g. 3bp/buvssb) already exists under that parent, the destination is auto-filled. Rows with no matching subfolder are left untouched. This is useful when you are adding new spots to an existing export tree.

Export formats

Pick a format from the EXPORT FORMAT dropdown before starting the batch:

FormatDescription
.artgto (CBOR — companion-app format, single file)One compact file per spot. This is what the companion viewer reads. Default.
JSON folder (legacy — not read by the viewer)A directory of .json.zst files per spot. Larger on disk. Kept for backward compatibility only.

The choice persists across restarts and applies to the next export batch.

Compression level

Exports use zstd compression. The default level is 3 (zstd's fast default). Higher levels (up to 22) produce smaller files at the cost of more CPU time during export. Decompression speed in the viewer is unaffected by the level — the viewer is fast regardless.

You can change the compression level in Settings.

Resume: skip already exported

The Skip already exported checkbox (on by default) makes batch exports resumable. If the app is closed mid-export, or you add new spots to a folder and re-run the batch, only the spots that have not been exported to the destination are processed. Already-exported spots are skipped.

Turn this off if you want to force a full re-export — for example, after changing the export format or compression level.

Running the export

Click Export to start. A progress card shows the current folder, the current spot, and a progress bar. You can cancel at any time; already-exported files are kept.

When the batch finishes, a summary chip shows how many spots succeeded and how many failed, with the total time.

Note
Exporting requires an active license. Browsing and opening .art files in the Library tab does not.

Where to go next

  • The run log — reviewing which boards solved and which failed.
  • File formats — details on .art and .artgto files.
  • Web viewer — using exported files in the companion app.