Start Generator Segmenter Viewer Inspector Validator Calibrator Profiler Settings
ConRes — the round-robin tools

What the round-robin asks of you

  1. Calibrate: prove that your print condition and its profile work, with one printed and scanned calibration sheet, before any paper is spent on a test form. If you have no profile, make one on the way.
  2. Generate your test form: 22 pages per rendering-intent PDF, plus the docket printed as page 1. A CMYK profile gives two PDFs, so 46 sheets.
  3. Print and scan every page on your own system: one scan per printed page, 1200 dpi, 16-bit, lossless. That is the slow part, and it happens away from this page.
  4. Segment the scans and submit them; later, look at what you printed.

Nothing leaves this browser until you ship it. You can stop after any step and come back weeks later, in another browser, with what you made.

What do you want to do?

Coming back with something in hand?

Greyed: parts of the journey not yet built. Submitting the segmented runs is the Segmenter's Upload for now.
Every tool

Each tool is one tab above. Generating, segmenting, viewing and submitting need a session: a tool asks you to sign in when its work needs it, and the debug mode in Settings lifts that.

  • Calibrator — prove the print condition with one calibration sheet
  • Profiler — make a profile for a condition
  • Generator — the test form
  • Segmenter — scans into segments, and the submission
  • Submit — ship filed runs, not yet
  • Viewer — compare
  • Inspector — one segment closely
  • Validator — PDF/X-4 structure
  • Settings — every tool's settings and the debug mode
Before you begin

What you make and ship is yours: sign in once with your email address, and the session lasts in this browser. Your address is also the Email of your print condition and is printed in every slug.

Calibrator

Calibration

Your color management either is or is not working: calibration shows you which, from a single printed sheet, before any test form materials are committed. The sheet carries your profile and your condition; its scan comes back here, and the verdict is produced in this browser.

This is what we did: created the profile for the exact device, colorants, substrate, and settings we print with, and supplied it here. The profile travels inside the generated PDF — nothing else needs to be kept in sync.

Condition

The print must use a profile reflective of the colorants, substrate, device, and settings. What you declare here rides in the sheet's record and in its slug.

Test Page

One sheet: the ConRes target on the left, the validation patches on the right, the record and your profile inside the PDF. Print it exactly the way the test forms will be printed. Failures here cost one sheet, not the run.

Verdict

Scan the printed sheet (16-bit, lossless) and supply it with the same test page PDF — the PDF is the record the analysis runs against. The verdict is produced here, in this browser.

Calibrator

Requirements

    Generator

    Assets

    Output

    Specifications

    The signed-in address, once you sign in from the tab row; typed only in the debug mode.

    Generation

    Each section starts in Auto mode, determined by the output profile and test form. Changing any checkbox switches that section to Custom.

    Layouts
    Color Spaces
    Rendering Intent

    Generating

    An ICC output profile (.icc or .icm): its colour space and category decide the layouts, colour spaces and rendering intents the test form carries.

    Test Form Generator

    Requirements

      Verify Digest

      Segmenter
      Pack

      Nothing here yet. Open a scan to begin.

      TIFF, PNG, JP2 and JXL scans · docket PDFs from the generator · ICC profiles for scans without one · a pack or a .tar.gz to bring back. A pack is imported as a folder; hold Shift to keep it as a pack, Ctrl to merge selectively.

      Handed in this session

      Nothing yet — scans and dockets queue here as they arrive, and segment while this dialog is open or closed.

      Test Form Segmenter

      Requirements

        Scans
        Packs

        Every run this browser holds — a pack carries a contents record naming each shipped file with its hashes and ships the job's docket; a run from before packs is listed as “not yet a pack” until made one. Verify a pack to see what is missing, by name.

        No packs yet. Segment a scan, or import an archive.

        Viewer

        Select a segment in the library to view it.

        —

        Choose a job and an intent.

        Choose a job and an intent.

        —
        Filmstrip Repeats of one element are combined into a single entry.

        Choose a job and an intent to fill the strip.

        PNG, TIFF, JPEG XL and JPEG 2000 segments written by the segmenter — or a pack it exported (.pack.zip), whose members are verified against its contents on the way in. A pack is kept as a pack: read-only, its members read from the archive. Hold Shift while handing a pack in to take its members in as folders instead — exactly as the segmenter imports one.

        From the segmenter Looking…

        The segmenter's store lists no case.

        Test Form Viewer

        Requirements

          Results
          Packs

          Every pack this browser holds: the archives it kept, under the shared folder, and the runs its segments are read from. A pack is one thing in two forms — a folder to change it, an archive to keep or send it — and converting between them changes the container and nothing else, so the incarnation is the same on both sides.

          No packs yet. Open one, or import a case from the segmenter.

          Retrieve part of a pack

          A pack that is somewhere else — on a folder attached through the daemon, on the submissions service, or on any pack server — can be taken in part. What lands lists the whole pack and holds what you chose, and records where the rest is so it can be filled in later.

          This pack lists no members.

          Kept sets

          A set is the segments of one comparison, kept together across the packs they come from. Exporting one writes a single .pack.tar carrying those packs, and dropping that back in brings the set back — each pack recognised by its own contents, whatever the file is called.

          No sets yet. Choose segments and keep them as one.

          Validator

          Validation

          A generated test form PDF, analysed against PDF/X-4 rules; fixable issues are corrected with Fix All or Fix Selected and the fixed PDF is validated again.

          Test Form Validator

          Requirements

            Profiler

            Profiler

            The Profiler makes an output profile for your condition when none exists: the profile the Calibrator and the test forms are generated with. What it derives is not an ICC-quality characterization of your system; the submission may be classified in a lower tier, and on the scan route no color claim can be made at all; the profile exists solely to generate your test form. If a profile already exists anywhere in your workflow, supplying it to the Calibrator is strictly better.

            Its stages, in order:

            1. Declare the condition the profile is for.
            2. Generate a color chart to print on your condition.
            3. Provide the measurements of the printed chart.
            4. Provide the tags that describe the profile.
            5. Set the parameters: for CMYK, the ink limit and the black generation.
            6. Set the tables: their grids.
            7. Generate the profile itself.

            Condition

            The profile is made for one condition: the device, the colorants, the substrate and the settings the chart is printed with. What you declare here rides in the chart's footer and inside the profile, so the Calibrator reads it back from the profile and does not ask for it again.

            Color Chart

            The chart is pure device values for the system you select — print it with color management off. The only profile that matters afterwards is your scanner's, from an IT8.7 target scanned at the exact settings used for the prints (16-bit RGB), supplied with the chart scan. CMYK and RGB print Argyll's standard sets for the instrument you measure with: 2028 patches on two pages for a scanner, or 882 patches at 21×21 on two pages for a spectrophotometer, in that instrument's own chart furniture. Grayscale is a 21×21 chart of K 0–100 % in 1 % steps on one page for either.

            In points: the default 36 pt is 0.5 in, and each step of 9 pt is 0.125 in.

            The Argyll references of the two-page 21×21 charts (the printtarg pages with their .cht recognition files): CMYK i1Pro3 (2 pages) · RGB i1Pro3 (2 pages)

            Measurements

            The measurements come in as a CGATS/TI3 file, or as a chart scan measured here (the printed chart's definition and the profile the scan carries identify what was printed and what came back). The profile is built in this browser from those measurements; the measurements themselves travel inside the profile.

            Tags

            What the profile says about itself, in five groups: the profile, the device, the media, the tags always written, and the optional tags, each optional tag followed by what it records. The device's signatures and the metadata's names come from the ICC's registry tables.

            The profile

            The description (desc) is the name applications list the profile by, and the copyright (cprt) its notice; both are always written.

            The device

            Choose the manufacturer and the model from the ICC's registry: each choice puts its four-character signature in the header and writes its name beside it, as the profile's dmnd and dmdd text, which you may change. The technology (tech) is the kind of device.

            The media

            The header's device attributes: a matte or glossy medium, reflective or transparent.

            Always written

            Tags that every conforming profile of this kind carries (ICC.1:2022 §8.2, §8.5):

            Optional tags

            Each records one thing more, shown or set under it.

            100
            010
            001
            Computed, not set: the measurements are D50, the profile connection space's white, so the matrix that adapts them to it is the identity.
            The measurements' CGATS file, written verbatim: the file provided in Measurements, or the one measured from the chart scan.
            No measurements yet.
            The measurements' creation date, once they are provided; the time of the build when they carry none.

            Parameters

            How a CMYK profile separates color into inks: the TAC is the most ink the tables ever ask for, and GCR with its curve sets how much black replaces the other three. These are disabled once RGB or Grayscale measurements are provided.

            Tables

            The profile's tables: the A2B grid, from device values to the measured color, and the B2A grid, back from color to device values. Each lists the sizes the color space of the measurements can be built with.

            Profile

            The profile is built in this browser from the measurements, with the condition, the tags, parameters and tables chosen in the steps before, and downloads when it is ready. It carries the condition, which the Calibrator reads back.

            Profiler

            Requirements

              Settings
              Generator Segmenter Viewer Validator Prototypes Debug

              Generator

              Output — The test form's output bit-depth

              Debugging — Enable or disable debugging features

              These settings take effect only while the Generator debugging mode is on, in Settings › Debug: on, the generator runs with what is set here; off, it runs with the defaults shown when this panel first opens, the ones the test forms are generated with.

              How a generation runs. Bootstrap Worker runs the whole generation in a worker, so this page stays responsive. Parallel Workers converts the pages' images and content streams in a pool of workers. Concurrent Subsets converts the parts of each conversion chain at the same time. The inter-page delay is the pause after each converted page that gives the browser a window to free that page's memory; the inter-job delay is the pause after a generated PDF is saved and delivered, before anything of the next one begins. Transfer is how the bytes of each image and content stream reach the parallel workers and come back: Streams passes the readable and writable streams themselves, Chunks passes each chunk over a message port, moved and never copied, Buffers passes a copy of the whole bytes; it applies only with Parallel Workers. Workers is the pool's worker count, Auto being the pool's own rule.
              In-Place converts and assembles the test form in one document, the way it is generated for printing. Recombined Chains converts each conversion chain on its own and puts the results back into one PDF. Separate Chains writes one PDF per chain. Interlaced saves the document once as a skeleton with every image and content stream a placeholder, converts them with the tally known, and splices the converted bytes into the output; it takes effect with Parallel Workers. How the converted images are compressed in the output, where the finished PDF is written before it downloads, and how the saved PDF is handed to its download. What is converted to the output profile. Which incarnation each parser runs, one setting per parser for every tool on this origin. A change applies when the page is reloaded: reload now.

              Segmenter

              Output, profiles and detection

              Runs are read from this browser's own storage and from the folder attached through the daemon, as one library. This chooses where a new job goes. Auto converts only for a format that cannot embed a profile a viewer colour-manages from. Grayscale scans are never converted. Auto applies to every segment except ConRes targets, which keep full 16-bit precision. 8-bit scans are never quantized. Applies to ConRes targets, which Auto leaves at full 16-bit. Applied only to scans that carry no embedded profile, and only to their own colour class. An embedded profile always wins.
              Each worker holds its own OpenCV and codec heaps, so this multiplies peak memory as well as throughput. Where finished print sets are uploaded: this page's own origin unless stated; an empty field is the default. Signing in is the tab row's, for every tool at once.

              Viewer

              Optimizations

              Validator

              Debugging — Enable or disable debugging features

              Prototypes

              Prototypes — The incubator's prototypes, one setting for every tool on this origin

              Temporary, until the workers are built at load. One setting for every tool on this origin; a change applies when the page is reloaded.

              Debug

              Debug mode — run every tool without signing in

              One object URL per picture for the whole page, the holds on it counted and the bytes bound shown in the status row beside the storage line. This browser's; remembered across loads. Pictures already on screen keep their URLs until shown again. A folder on disk through the ConRes daemon on this machine. Off, the Segmenter and the Viewer neither look for a daemon nor read a stored grant, and the Segmenter offers no Attach. This browser's; remembered across loads; takes effect on the next load. For when something is wrong: each button asks before it clears, and the log says what was cleared and whether the page needs a reload.
              What is derived from the segments and made again when they are next shown or described — each kind on its own, the segments untouched. Each button asks before it clears, and the log says what was cleared and whether the page needs a reload. The same clearing, for a selection, is Clear caches… in the Segmenter's and the Inspector's toolbars.

              Account

              One sign-in for every tool. The service emails a code to your address; the screen and the email show the same confirmation; the code works for 30 minutes and only in the browser that asked for it, typed here or by following the link in the email. The session proves your address for 30 days.