SimhiveSimhive · docs · pool page

Scripts, raw output and seeds

Run sims from a script with the simhive CLI, download the raw simc json2 and CSV of any result, reproduce a run with its seed, and get higher caps as a known theorycrafter.

The interface is built for gear decisions. A theorycrafter's day is hundreds of sims, small effects and raw numbers in a notebook. These are the seams for that.

The raw output of any result #

Every result has two buttons next to Save report:

  • json2 downloads the raw SimulationCraft json2 of the run: every stat, buff, proc, resource and timeline simc wrote, exactly as the interface received it. A pool run is the merged output of its batches, in the same layout simc uses for its own threads.
  • CSV downloads the comparison rows of a Top Gear, Droptimizer or Advanced result: name, slot, item level, item id, source, DPS, error, delta.

The raw json2 is kept, compressed, next to the history entry on the machine that ran the sim, and deleted with it. On the pool's web interface it stays with the result for a day, unless it is very large.

Reproducing a run #

Every result line ends with the seed the run used and the pool's SimulationCraft commit. A pool run names its first batch's seed; the other batches count up from it. Re-run, same seed runs the same sim again with that seed:

  • on one machine the result is identical, so a change you make to the input is the only difference;
  • on the pool the work is split across whichever machines are online, so the batch seeds may not line up the same way and the result can differ within its error.

You can also put seed=123456 into an Advanced sim yourself; the pool keeps it.

The CLI #

The app's engine listens on your machine (port 4747, or the next free one, shown under Settings → This machine). The simhive script sends a .simc file as an Advanced sim, waits, and writes what you ask for:

simhive run mysim.simc --json result.json --raw result.json2.json --csv rows.csv

The file is the sim as you would write it for simc: a character, options, profileset. lines. Profilesets become rows. Iterations, target error and fight length come from the file. It prints the DPS, the row count, the seed and the commit, and exits 0 when the sim finished.

Where the script is: bin/simhive.mjs in the engine folder (the app: data/localbots/ under its data folder; Docker: /app). Run it with node bin/simhive.mjs run …, or npm link in that folder once to have simhive on your path. --server names another engine, for instance a Docker one on your LAN.

Higher caps #

Sims on the pool are capped so one member cannot take the pool for an hour: 200,000 iterations per profile, 1,000 profilesets, target error no finer than 0.05 %. A theorycrafter chasing a 0.1 % effect needs more. The operator can mark a member high limits in the console: a million iterations, 5,000 profilesets, target error down to 0.01 %. The rules about files and the network never move. Ask the operator of your pool.