# 3D print shrinkage compensator

- Human page: https://happytails.ai/en/calculators/3d-print-shrinkage-compensator/
- Markdown: https://happytails.ai/en/calculators/3d-print-shrinkage-compensator.md
- Structured JSON: https://happytails.ai/agents/en/calculators/3d-print-shrinkage-compensator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `3d-print-shrinkage-compensator` |
| Category | calculators |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Use a measured test print to calculate a proportional scale correction. In Uniform mode, X is the reference dimension for every axis. Choose the new slicer scale OR the alternative model dimension, not both. Changing units keeps the entered numbers. All calculations stay on your device. Download the report for formulas, assumptions and calculated values.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `mode` | Scaling | select | "Uniform" | Allowed: Uniform, Per axis |
| `unit` | Measurement unit | select | "mm" | Allowed: mm, cm, m, in, ft, yd |
| `nominalX` | X sample CAD dimension | number | 100 | min=0 max=1000000000 step=any |
| `measuredX` | X measured printed dimension | number | 98 | min=0 max=1000000000 step=any |
| `scaleX` | X slicer scale used for sample (%) | number | 100 | min=1 max=10000 step=any |
| `targetX` | X desired final dimension | number | 100 | min=0 max=1000000000 step=any |
| `nominalY` | Y sample CAD dimension | number | 100 | min=0 max=1000000000 step=any |
| `measuredY` | Y measured printed dimension | number | 99 | min=0 max=1000000000 step=any |
| `scaleY` | Y slicer scale used for sample (%) | number | 100 | min=1 max=10000 step=any |
| `targetY` | Y desired final dimension | number | 100 | min=0 max=1000000000 step=any |
| `nominalZ` | Z sample CAD dimension | number | 100 | min=0 max=1000000000 step=any |
| `measuredZ` | Z measured printed dimension | number | 100 | min=0 max=1000000000 step=any |
| `scaleZ` | Z slicer scale used for sample (%) | number | 100 | min=1 max=10000 step=any |
| `targetZ` | Z desired final dimension | number | 100 | min=0 max=1000000000 step=any |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Correction factors from 0.01 to 100. Recommended slicer scale from 1% to 10,000%. Proportional estimates do not repair warping, offsets or mesh geometry.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "3d-print-shrinkage-compensator",
  "category": "calculators",
  "built": true,
  "requirements": "Correction factors from 0.01 to 100. Recommended slicer scale from 1% to 10,000%. Proportional estimates do not repair warping, offsets or mesh geometry.",
  "implementation": {
    "fields": [
      {
        "key": "mode",
        "label": "Scaling",
        "value": "Uniform",
        "type": "select",
        "values": [
          "Uniform",
          "Per axis"
        ]
      },
      {
        "key": "unit",
        "label": "Measurement unit",
        "value": "mm",
        "type": "select",
        "values": [
          "mm",
          "cm",
          "m",
          "in",
          "ft",
          "yd"
        ]
      },
      {
        "key": "nominalX",
        "label": "X sample CAD dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any"
      },
      {
        "key": "measuredX",
        "label": "X measured printed dimension",
        "value": 98,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any"
      },
      {
        "key": "scaleX",
        "label": "X slicer scale used for sample (%)",
        "value": 100,
        "type": "number",
        "min": 1,
        "max": 10000,
        "step": "any"
      },
      {
        "key": "targetX",
        "label": "X desired final dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any"
      },
      {
        "key": "nominalY",
        "label": "Y sample CAD dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "measuredY",
        "label": "Y measured printed dimension",
        "value": 99,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "scaleY",
        "label": "Y slicer scale used for sample (%)",
        "value": 100,
        "type": "number",
        "min": 1,
        "max": 10000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "targetY",
        "label": "Y desired final dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "nominalZ",
        "label": "Z sample CAD dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "measuredZ",
        "label": "Z measured printed dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "scaleZ",
        "label": "Z slicer scale used for sample (%)",
        "value": 100,
        "type": "number",
        "min": 1,
        "max": 10000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      },
      {
        "key": "targetZ",
        "label": "Z desired final dimension",
        "value": 100,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": "any",
        "showWhen": {
          "mode": [
            "Per axis"
          ]
        }
      }
    ],
    "input": false,
    "live": true,
    "presentation": "metrics",
    "note": "Use a measured test print to calculate a proportional scale correction. In Uniform mode, X is the reference dimension for every axis. Choose the new slicer scale OR the alternative model dimension, not both. Changing units keeps the entered numbers. All calculations stay on your device. Download the report for formulas, assumptions and calculated values.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Turn a measured test print into a scale correction. Compare all three axes or use one uniform reference dimension.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use 3D print shrinkage compensator

1. Enter the measured inputs and select their units.
2. Review the calculated dimensions, counts and rounding.
3. Download the result and verify it against a sample before making the full project.

## Useful next steps

- [Pottery shrinkage calculator](https://happytails.ai/en/calculators/pottery-shrinkage-calculator/) ([Markdown](https://happytails.ai/en/calculators/pottery-shrinkage-calculator.md))

- [Origami paper size calculator](https://happytails.ai/en/calculators/origami-paper-size-calculator/) ([Markdown](https://happytails.ai/en/calculators/origami-paper-size-calculator.md))

## Measure a reference print

Enter the CAD dimension before scaling, the resulting printed dimension and the slicer scale used for that test. Uniform mode uses one measured direction as the reference. Per axis mode calculates separate X, Y and Z corrections.

### Apply one correction

A 100 mm CAD dimension printed at 100% that measures 98 mm needs a scale factor of 100/98, or about 102.0408%. Use the recommended slicer scale with the desired model size, or pre-scale the model and retain the old slicer setting. Applying both would double-correct.

### Save the calculation

Download a CSV of the results or instructions, a readable text report and a JSON report with values, formulas and assumptions. Calculations run locally on your device. Unit changes keep the numbers already entered, so check the selected units before using the result.
