MuSimA

A Multi-Modal Simulator for ABAC Systems

Required fields: subject_size, object_size, environment_size, permit_rules_count, deny_rules_count. Attribute value arrays accept a plain number or a [count, stars] pair. New here? See Help & Guide.

Sketch each attribute's value distribution by hand, then let MuSimA read the curves and build the full configuration for you. Provide a ZIP of the sketches plus a minimal JSON config. See Help & Guide.

Only the five required fields are needed: subject_size, object_size, environment_size, permit_rules_count, deny_rules_count. Attribute counts, values, and distributions are inferred from your sketches. Use Load Example for a starting point.

One PNG or JPG sketch per attribute, named by type and index: SA-1, SA-2, … (subjects), OA-1, … (objects), EA-1, … (environment). Draw each curve clearly — a peaked hump (Normal), a right-skewed shape (Poisson), or a flat line (Uniform).

Create synthetic access logs by sampling the completed simulation's Access Control Matrix (ACM). Logs download as CSV with columns: subject, object, environment, access (permit/deny).

Run a simulation first (Standard or Multimodal Input). Once it completes, log generation unlocks here automatically.

How many access records to sample. Range: 1 to 1,000,000.

Share of generated rows that should be permit (allow). Range: 0 to 99.9.

MuSimA generates synthetic ABAC datasets — subjects, objects, environments, their attributes, a set of permit/deny policy rules, and the resulting Access Control Matrix — plus optional synthetic access logs. Pick a workflow below.

Workflow A — Standard Input (JSON)
  1. Open the Standard Input tab and click Load Example (or Upload JSON) to start from a valid config.
  2. Edit the JSON in the editor. Use View Schema for the field reference.
  3. Complete the reCAPTCHA and click Generate Simulation.
  4. When processing finishes, use Download Outputs Bundle.
Workflow B — Multimodal Input (hand-drawn sketches)
  1. Sketch one distribution per attribute and save each as a PNG/JPG named SA-1, SA-2, … (subjects), OA-1, … (objects), EA-1, … (environment). Zip them together.
  2. In the Multimodal Input tab, provide a minimal JSON config — only the five required fields below — and select your ZIP.
  3. Click Process Multimodal Input. MuSimA reads the sketches, infers the attribute counts/values/distributions, then runs the standard pipeline.
  4. The bundle additionally includes side-by-side sketch-vs-realized comparison images.
Input field reference
FieldMeaning
subject_size, object_size, environment_size Required. Number of distinct subjects / objects / environments.
permit_rules_count, deny_rules_count Required. How many access-granting (permit) and access-blocking (deny) policy rules to generate.
subject_attributes_count (and object/environment) Number of attributes per entity type.
subject_attributes_values (and object/environment) One entry per attribute: a number = how many possible values, or a [count, stars] pair to also add wildcards.
global_stars Default wildcard count applied to plain-number attribute entries.
subject_distributions (and object/environment) One entry per attribute: "N" Normal (mean, variance), "P" Poisson (lambda), or "U" Uniform.
seed, sampling_config, correlations Optional / advanced: reproducibility, calibration tolerances, and attribute correlation targets.
Wildcard stars — the [count, stars] format

In any attribute-values array, an entry can be a plain number (5 = five concrete values) or a pair ([5, 2] = five values plus two wildcard * slots). Wildcards make a rule match any value for that attribute, so a higher star count yields broader, less specific rules. [4, 0] disables wildcards for that attribute.

Understanding the output bundle
  • output.json — full ABAC system: S/O/E identifiers, attribute names & possible values, per-entity assignments, and the generated rules.
  • ACM.txt — Access Control Matrix as 0/1 over Subjects × Objects × Environments (1 = allowed).
  • access_data.txt — flattened access records (attribute columns + decision), ready for ML.
  • distribution_attestations/plots/ — expected vs. actual attribute distributions.
  • distribution_attestations/comparisons/ — sketch vs. realized plots (multimodal runs only).
Generating access logs

After a simulation completes, the Generate Logs tab unlocks. Choose how many records to sample and the percentage that should be permit, then download the result as CSV. Logs are sampled from the completed run's Access Control Matrix.