Skip to content

Main content

Random Guillotine Rectangle Cut Trace

Replay seed or one advancing injected source, uniform over the explicitly stated finite support, not cryptographically secure. At each step choose a uniform splittable current rectangle, then a uniform legal axis and integer interior cut; local-choice process, not uniform over final partitions.

Loading tool…

Description

At each step choose a uniform splittable current rectangle, then a uniform legal axis and integer interior cut; local-choice process, not uniform over final partitions.

A random construction is defined by its sampling support: positions, permutations, complete tilings, proposal sequences or another explicit set. Uniform choices at one stage do not necessarily make final visible outcomes uniform. A replay seed gives a deterministic sequence; equal values can hide different sampled positions. These tools are for reproducible synthetic examples rather than cryptographic entropy.

At each step choose a uniform splittable current rectangle, then a uniform legal axis and integer interior cut; local-choice process, not uniform over final partitions.

When to use this tool

Use this tool to at each step choose a uniform splittable current rectangle, then a uniform legal axis and integer interior cut; local-choice process, not uniform over final partitions.

How to use the tool and how it works

  1. Enter width, height, cuts, seed using the definitions below.
  2. Run the operation. Resolve input-format errors before interpreting an output.
  3. Read result.seed, result.trace, result.rectangles, using the stated boundary, ordering, sign and absence conventions.

Start with [0,0,width,height]. At every cut choose uniformly among splittable current rectangles, then among its splittable axes, then among interior integer cut coordinates. Replace the chosen rectangle by its two pieces and record its current-list index, axis and cut.1

Input fieldMeaning and unitsAccepted input
widthInteger width, 1–128, in the positions/cells described above.Finite safe integer satisfying the stated bounds.
heightPositive integer rectangle height, bounded to 128 for cuts or 256 for concentric insets.Finite safe integer satisfying the stated bounds.
cutsInteger cut count 1–127 below total unit-cell area.Finite safe integer satisfying the stated bounds.
seedNonblank replay seed, at most 256 UTF-16 code units; an injected source overrides seeded draws.Text, at most 8,192 UTF-16 code units; narrower grammar/range rules also apply.
Output fieldInterpretation
resultObject containing the fields below.
result.seedOriginal supplied seed string; injected-source replay additionally requires that source’s state.
result.traceSequential swaps or guillotine-cut choices, retaining their stated provenance.
result.rectanglesGenerated [minX,minY,maxX,maxY] bounds under the stated partition/inset rule.
json
{
  "input": {
    "width": 4,
    "height": 2,
    "cuts": 1,
    "seed": "batch56"
  },
  "output": {
    "result": {
      "seed": "batch56",
      "trace": [
        {
          "rectangle": 0,
          "axis": "y",
          "cut": 1
        }
      ],
      "rectangles": [
        [
          0,
          0,
          4,
          1
        ],
        [
          0,
          1,
          4,
          2
        ]
      ]
    }
  }
}

Limitations and assumptions

  • Dimensions are integers 1–128 and cuts is 1–127 below width×height. Sequential choices do not give a uniform distribution over final partitions.
  • A nonblank seed of at most 256 UTF-16 code units is required. With ordinary use the seed initializes one deterministic advancing source; an application-injected random source takes precedence and the seed alone then cannot replay the result. Uniformity statements assume independent uniform source draws in [0,1). Source calls are bounded and degenerate injected sources can fail a rejection budget. This is not cryptographically secure.
  • Every declared outer field is required and unknown outer fields are rejected. Strings and JSON text have size limits, lists are bounded to 128 entries, and JSON nesting/node counts are bounded. Tighter operation-specific bounds stated above take precedence.
  • Ordinary numeric outputs must be finite and within safe-integer magnitude. Exact large lengths/counts use decimal strings. Original record indexes and code-unit positions are zero-based; span ends are exclusive unless stated otherwise.

Alternative or Complementary methods

Choose a generator whose support matches the intended experiment and retain source-position provenance. Use a separate statistically justified process model or cryptographic source where those properties matter.

References

  1. Tool behavior and example: Random Guillotine Rectangle Cut Trace — tool.io

Similar or alternative tools

  • Random Bounded Chunk Cut Positions

    Uniformly sample bounded positive chunk-length compositions of an explicit total with fixed chunk count using exact completion-count unranking; infeasible support rejects.

  • Random Concentric Rectangle Insets

    Choose a uniform distinct subset of feasible integer concentric inset distances then sort outward-to-inward; rectangles have positive interior dimensions, not arbitrary recursive cuts.