OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
 
master @ 114 LINES
 
[ HISTORY ]  [ UP ]
 

<h1> <a href="https://wowsimstats.com">wowsimstats</a></h1>

Powered by [wowsims](https://github.com/wowsims/mop) and
[nix](https://nixos.org/guides/how-nix-works/).

## About

The wowsimcli tool consumes simulation inputs as RaidSimRequests in the
protojson format. These input files can be exported from the
[WowSims Web UI](https://wowsims.com). The core of this project is a workflow
that automates simulation at scale. We use nix to programmatically compose the
required protojson input files. A script then orchestrates the entire process:

1. **Generate Inputs**: Based on the simulation you choose (eg
   dps-p1-raid-single-long), nix generates the corresponding protojson input
   files for every specialisation.
2. **Execute Simulations**: The script invokes wowsimcli for each generated
   file, running the simulation and producing a raw JSON output.
3. **Aggregate Data**: A script collects the output from all the individual runs
   and aggregates the data into a single, clean JSON file.

This approach allows us to easily generate thousands of simulation combinations
while also leveraging the powerful caching and parallelization features of the
nix build system. If a simulation's input hasn't changed, nix can use a cached
result instead of re-running it, saving significant time.

Right now the project is still in a _proof of concept_ stage, and requires more
work.

## Developing

1. Install [nix (the package manager)](https://nixos.org/download/)
2. Ensure `nix-command` and `flakes` are enabled in your
   `~/.config/nix/nix.conf`:

```
experimental-features = nix-command flakes
```

3. run `nix develop`

This will enter a nix development shell with all the required dependencies in
your PATH.

- `wowsimcli`: The command-line tool used to run the simulations.

- `nodejs`: Web frontend.

## Running and updating simulations

To run simulations use:

- `nix run .#<simulation>`

Simulations are organized into the following format:

Race comparison benchmarks:
`race-<class>-<spec>-<phase>-<encounterType>-<targets>-<duration>`

DPS rankings: `dps-<phase>-<encounterType>-<targets>-<duration>`

`<class>-<spec>`:

- All DPS class/spec options are currently implemented, except for feral
- example: `druid-balance`

`<phase>`:

- Only `p1` is available currently, `preRaid` coming soon.
- example `p1`

`<encounterType>`:

- Only `raid` is available currently (dungeon and specific boss simulations are
  planned for future updates).
- example `raid`

`targets`:

- `single` 1 Target
- `cleave` 2 Target
- `three` 3 target
- `ten` 10 target
- example `single`

`duration`:

- `long`: 300 seconds, with a 60s variance (`300s ?60s`)
- `short`: 120 seconds, with a 30s variance (`120s ?30s`)
- `burst`: 30 seconds, with a 10s variance (`30s ?10s`)

**Example simulations**

`nix run .#dps-p1-raid-single-long` This will run all dps specs in P1 bis gear,
against 1 default raid boss for 300s 60s +/-, for 10,000 iterations each.

`nix run .#race-paladin-retribution-p1-raid-cleave-burst` This will run
simulations for all Retribution's playable races, against 2 default raid boss
targets, for 30s 10s +/-, for 10,000 iterations each.

## Simulation Output

Running a simulation script generates a JSON file with the aggregated data in
your present working directory. These files are also copied to web/public/data/
to be used by the web front-end. The ability to specify an output directory is
planned for a future update.

To refresh all data used by the website, run the following command:

`nix run .#allSimulations`

This command runs every simulation and updates the corresponding data files in
web/public/data/.

<h1> <a href="https://wowsimstats.com">wowsi
mstats</a></h1>

Powered by [wowsims](https://github.com/wows
ims/mop) and
[nix](https://nixos.org/guides/how-nix-works
/).

## About

The wowsimcli tool consumes simulation input
s as RaidSimRequests in the
protojson format. These input files can be e
xported from the
[WowSims Web UI](https://wowsims.com). The c
ore of this project is a workflow
that automates simulation at scale. We use n
ix to programmatically compose the
required protojson input files. A script the
n orchestrates the entire process:

1. **Generate Inputs**: Based on the simulat
ion you choose (eg
   dps-p1-raid-single-long), nix generates t
he corresponding protojson input
   files for every specialisation.
2. **Execute Simulations**: The script invok
es wowsimcli for each generated
   file, running the simulation and producin
g a raw JSON output.
3. **Aggregate Data**: A script collects the
 output from all the individual runs
   and aggregates the data into a single, cl
ean JSON file.

This approach allows us to easily generate t
housands of simulation combinations
while also leveraging the powerful caching a
nd parallelization features of the
nix build system. If a simulation's input ha
sn't changed, nix can use a cached
result instead of re-running it, saving sign
ificant time.

Right now the project is still in a _proof o
f concept_ stage, and requires more
work.

## Developing

1. Install [nix (the package manager)](https
://nixos.org/download/)
2. Ensure `nix-command` and `flakes` are ena
bled in your
   `~/.config/nix/nix.conf`:

```
experimental-features = nix-command flakes
```

3. run `nix develop`

This will enter a nix development shell with
 all the required dependencies in
your PATH.

- `wowsimcli`: The command-line tool used to
 run the simulations.

- `nodejs`: Web frontend.

## Running and updating simulations

To run simulations use:

- `nix run .#<simulation>`

Simulations are organized into the following
 format:

Race comparison benchmarks:
`race-<class>-<spec>-<phase>-<encounterType>
-<targets>-<duration>`

DPS rankings: `dps-<phase>-<encounterType>-<
targets>-<duration>`

`<class>-<spec>`:

- All DPS class/spec options are currently i
mplemented, except for feral
- example: `druid-balance`

`<phase>`:

- Only `p1` is available currently, `preRaid
` coming soon.
- example `p1`

`<encounterType>`:

- Only `raid` is available currently (dungeo
n and specific boss simulations are
  planned for future updates).
- example `raid`

`targets`:

- `single` 1 Target
- `cleave` 2 Target
- `three` 3 target
- `ten` 10 target
- example `single`

`duration`:

- `long`: 300 seconds, with a 60s variance (
`300s ?60s`)
- `short`: 120 seconds, with a 30s variance 
(`120s ?30s`)
- `burst`: 30 seconds, with a 10s variance (
`30s ?10s`)

**Example simulations**

`nix run .#dps-p1-raid-single-long` This wil
l run all dps specs in P1 bis gear,
against 1 default raid boss for 300s 60s +/-
, for 10,000 iterations each.

`nix run .#race-paladin-retribution-p1-raid-
cleave-burst` This will run
simulations for all Retribution's playable r
aces, against 2 default raid boss
targets, for 30s 10s +/-, for 10,000 iterati
ons each.

## Simulation Output

Running a simulation script generates a JSON
 file with the aggregated data in
your present working directory. These files 
are also copied to web/public/data/
to be used by the web front-end. The ability
 to specify an output directory is
planned for a future update.

To refresh all data used by the website, run
 the following command:

`nix run .#allSimulations`

This command runs every simulation and updat
es the corresponding data files in
web/public/data/.
 
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET