Additive manufacturing prep & monitoring
Orient, support, slice and monitor prints; correct issues mid-print.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- PrusaSlicer · Bambu Studio · Cura · OctoPrint
- Class GUI-need label
HY· Hybrid
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R07.07.01.03-T01 Orient a bracket for minimal support and slice in PETG under time and support limits
Original instruction
In PrusaSlicer 2.8 load input/bracket.stl for an Original Prusa MK4. Orient it to minimise support (functional bore must not face the bed), use 0.20 mm STRUCTURAL PETG profile, organic supports from build plate only, and slice so estimated time is under 2 h and support material under 5 g. Export out/bracket.bgcode and out/bracket.3mf.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrydrag· Drag & dropvis· Visual judgment- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
3MF: rotation matrix; bore axis not perpendicular-down; profile/support settings exact; grader re-slices with PrusaSlicer CLI from the 3MF: time <2 h, support filament <5 g; G-code header matches re-slice. PrusaSlicer command-line mode is blocked for the agent (the CLI is grader-only); out/ files written by any process other than the PrusaSlicer GUI are flagged by a file audit log.
Proposed partial credit
35% orientation valid & low support; 20% profile/support settings; 30% time & support limits; 15% exports
R07.07.01.03-T02 Add a height-range modifier that raises infill in the top 10 mm
Original instruction
In PrusaSlicer load input/handle.stl (45 mm tall). Keep 15% grid infill overall, but add a modifier (box or height range) so the top 10 mm uses 40% gyroid infill. Slice and save out/handle.3mf and G-code.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickgeom· Precise geometrytype· Text & forms- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
3MF config: base infill 15% grid; modifier/range covering Z 35-45 mm (±0.2) with 40% gyroid; G-code layer comments show gyroid infill only above 35 mm.
Proposed partial credit
50% modifier region & settings; 30% base settings intact; 20% sliced output
R07.07.01.03-T03 Paint support blockers on a cosmetic face only
Original instruction
In PrusaSlicer open input/logo_plaque.3mf. With 'supports everywhere' enabled, use the support painting tool to block supports on the embossed front face (only that face, including the letter sides) while leaving enforcers on the hanging hook. Slice and save out/logo_plaque.3mf.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
path· Continuous pathvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
3MF triangle paint data: ≥95% of front-face triangles blocked, ≤2% of other triangles blocked; hook enforcer intact; G-code has no support extrusions touching front face region. PrusaSlicer command-line mode is blocked for the agent (the CLI is grader-only); out/ files written by any process other than the PrusaSlicer GUI are flagged by a file audit log.
Proposed partial credit
50% front face coverage; 25% no stray blocking; 25% resulting G-code
R07.07.01.03-T04 Arrange twelve copies on a Bambu bed with 5 mm spacing
Original instruction
In Bambu Studio for an X1C (256×256 mm plate) import input/clip.stl, make 12 copies and arrange them with ≥5 mm spacing between parts and ≥5 mm from plate edges and the excluded front-left zone, all on plate 1. Slice and export out/clips.gcode.3mf.
- Platforms
mac· macOSwin· Windows- Applications
- Bambu Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & click- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
3MF: 12 instances on plate 1; pairwise convex-hull distance ≥5 mm; within plate minus margins and exclusion zone; sliced G-code present.
Proposed partial credit
30% 12 copies; 50% spacing/no overlap; 20% sliced
R07.07.01.03-T05 Spot stringing on a running print and raise retraction before the next layer
Original instruction
A job is running on the OctoPrint virtual printer (sandbox). The webcam plugin shows layer images; by around layer 20 stringing appears. Watch the frames, and once stringing is visible send a console command to raise retraction from 0.8 to 1.2 mm (firmware retraction M207) before the next layer starts, without pausing the job.
- Platforms
web· Any OS (web)- Applications
- OctoPrint
- Interfaces
brow· Browserhmi· Device/HMI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentrt· Real-time controltype· Text & forms- Work product
WP08· App/system state- Conditions
interrupt· Interruptions- Proposed difficulty
- 4 / 5
Proposed verifier
Serial log: M207 S1.2 issued after the first frame showing stringing (seeded layer) and before the following layer-change marker; no pause/cancel; command issued only once; API key not provided to agent (UI only).
Proposed partial credit
30% stringing detected at right layer; 50% correct command in window; 20% job uninterrupted
R07.07.01.03-T06 React to warping mid-print by raising bed temperature and part cooling
Original instruction
On the sandbox OctoPrint virtual printer, a 4-hour ABS job shows corner lifting in camera frames around layer 12. Before layer 13, raise bed temperature by 5 °C (M140) and set part-cooling fan to 40% (M106 S102) via the terminal, then confirm in the temperature graph the new target is reached within 3 minutes.
- Platforms
web· Any OS (web)- Applications
- OctoPrint
- Interfaces
brow· Browserhmi· Device/HMI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentrt· Real-time controltype· Text & forms- Work product
WP08· App/system state- Conditions
interrupt· Interruptions- Proposed difficulty
- 4 / 5
Proposed verifier
Serial log: M140 S(target+5) and M106 S102 between layer 12 and 13 markers; no other temperature changes; job continues; out/note.txt mentions the observed layer.
Proposed partial credit
25% detection; 50% commands in window; 25% no side effects
R07.07.01.03-T07 Classify twenty print snapshots by failure mode
Original instruction
input/frames/ has 20 timelapse frames from different prints. Label each as one of: ok, stringing, warping, layer_shift, under_extrusion, spaghetti. Write out/labels.csv (frame, label) and a one-line corrective setting for each non-ok class in out/actions.md.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- OctoPrint · image viewer
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgment- Work product
WP10· Annotations- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
labels.csv accuracy vs expert labels ≥85%; actions.md maps each class to a correct remedy (keyword key: retraction, enclosure/bed temp, belts, flow/nozzle, adhesion).
Proposed partial credit
80% label accuracy (scaled); 20% remedies
R07.07.01.03-T08 Use per-model adaptive layers and ironing in Cura
Original instruction
In UltiMaker Cura 5.8 load input/lid.stl and input/box.stl for an Ender-3 V3. For the lid only enable ironing on top surfaces (0.1 mm spacing, 10% flow); for both enable adaptive layers (variation 0.1, step 0.05); base layer 0.2 mm, PLA. Slice and save out/box_lid.3mf and G-code.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Cura
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
3MF per-object settings: ironing only on lid with values; adaptive layers enabled; G-code shows varying layer heights and ;TYPE:IRONING only in lid region.
Proposed partial credit
40% per-model ironing; 30% adaptive layers; 30% sliced output checks
R07.07.01.03-T09 Paint a two-color logo onto a model and minimize purge on an AMS printer
Original instruction
In Bambu Studio open input/badge.3mf (X1C with AMS: white PLA slot 1, red PLA slot 2). Use color painting to make the raised logo (see input/logo_ref.png) red and everything else white, enable purge into infill and objects' support, keep a prime tower, slice and report total purge (g) in out/purge.txt; export out/badge.gcode.3mf.
- Platforms
mac· macOSwin· Windows- Applications
- Bambu Studio
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
path· Continuous pathvis· Visual judgmentclick· Point & click- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
3MF paint data: logo triangles ≥95% red, other faces ≤2% red; purge-into-infill enabled; G-code filament change count equals layers with both colors; reported purge equals slicer stats ±0.5 g. Bambu Studio command-line mode is blocked for the agent; out/ files written by any process other than the Bambu Studio GUI are flagged by a file audit log.
Proposed partial credit
45% painting accuracy; 20% purge settings; 20% sliced output; 15% purge report
R07.07.01.03-T10 Apply variable layer height with a smoothed quality profile
Original instruction
In PrusaSlicer load input/vase_figure.stl, open Variable layer height, run Adaptive with quality 0.75, smooth with radius 5, then manually thin layers to ≤0.1 mm between Z 60-70 mm (face detail). Slice and save out/figure.3mf.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
drag· Drag & dropvis· Visual judgmentclick· Point & click- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
3MF layer height profile: varies; all layers in Z 60-70 ≤0.1 mm; elsewhere within 0.07-0.3; smoothness (max adjacent delta ≤0.05); G-code layer Z list matches profile. PrusaSlicer command-line mode is blocked for the agent (the CLI is grader-only); out/ files written by any process other than the PrusaSlicer GUI are flagged by a file audit log.
Proposed partial credit
30% adaptive profile; 40% detail band; 30% smoothness & slice
R07.07.01.03-T11 Calibrate Klipper pressure advance from a test print and apply it
Original instruction
On the sandbox Mainsail/Klipper printer, run the provided tower test fixtures/pa_tower.gcode with TUNING_TOWER (start 0, factor 0.005). From the photographed result input/pa_tower.jpg choose the best height, compute pressure_advance, set it in printer.cfg [extruder] via Mainsail's config editor, and restart firmware.
- Platforms
web· Any OS (web)- Applications
- Mainsail · Klipper
- Interfaces
brow· Browserhmi· Device/HMI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmenttype· Text & formsclick· Point & click- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Klipper log shows TUNING_TOWER with given params; printer.cfg pressure_advance within ±0.005 of expert value from photo; FIRMWARE_RESTART executed; config parses without error.
Proposed partial credit
25% test run; 45% PA value; 20% config edit valid; 10% restart
R07.07.01.03-T12 Batch-slice twenty STLs with the PrusaSlicer CLI and report stats
Original instruction
Using prusa-slicer --export-gcode with profile fixtures/mk4_pla_020.ini, slice all 20 STLs in input/parts/ (auto-centre, no rotation), and write out/stats.json with per-part print time and filament grams parsed from the G-code. Return non-zero if any part fails to slice.
- Platforms
lin· Linuxmac· macOSwin· Windows- Applications
- PrusaSlicer
- Interfaces
term· Terminal- GUI need · task setting
CL· CLI-sufficient- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
code· Code & commands- Work product
WP02· Records/table- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
20 G-code files; stats.json values equal G-code footer comments; the deliberately unsliceable part (too tall) is reported as failed and exit code non-zero.
Proposed partial credit
50% G-code produced; 30% stats correct; 20% failure handling
R07.07.01.03-T13 Cut an oversized model into two parts with dowel connectors to fit the bed
Original instruction
input/helmet.stl is 300 mm tall; the printer volume is 250×210×220 mm. In PrusaSlicer cut it with the Cut tool into two parts at a plane avoiding the visor detail, add 4 dowel connectors (Ø5 mm, 0.2 mm tolerance), orient both parts flat-side down and fit them on the bed. Save out/helmet.3mf.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
geom· Precise geometrydrag· Drag & dropvis· Visual judgment- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
3MF: 2 objects (+dowels) each fits volume; cut plane does not intersect visor region (mesh label); 4 dowel holes per mating face Ø5.2 and dowels Ø5; cut faces on bed; mesh manifold. PrusaSlicer command-line mode is blocked for the agent (the CLI is grader-only); out/ files written by any process other than the PrusaSlicer GUI are flagged by a file audit log.
Proposed partial credit
25% cut avoids detail; 30% connectors; 25% fits & oriented; 20% manifold/export
R07.07.01.03-T14 Create a custom printer definition in Cura and slice a test part
Original instruction
In Cura add a custom FFF printer 'Voron24-350': 350×350×340 mm, 0.4 nozzle, 1.75 mm filament, heated bed, Klipper start G-code calling PRINT_START BED={material_bed_temperature_layer_0} EXTRUDER={material_print_temperature_layer_0}, end G-code PRINT_END. Slice input/calib_cube.stl in PETG and save G-code.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Cura
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Cura machine definition files: dimensions and nozzle exact; start/end G-code text exact; sliced G-code first lines show substituted temperatures; bed size in header.
Proposed partial credit
40% machine settings; 30% start/end G-code; 30% sliced output
R07.07.01.03-T15 Insert a pause at layer 37 for embedded nuts and resume correctly
Original instruction
In PrusaSlicer add a pause at the first layer that closes over the M3 nut traps of input/clamp.stl (find the right layer in the preview), with custom message 'Insert 4x M3 nuts'. Upload to the sandbox OctoPrint virtual printer, start it, and when the pause fires, resume via the OctoPrint UI after acknowledging.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer · OctoPrint
- Interfaces
desk· Desktop GUIbrow· Browser- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentclick· Point & clickmulti· Cross-app- Work product
WP06· Code/engineering- Conditions
multiapp· Multi-app- Proposed difficulty
- 3 / 5
Proposed verifier
G-code has M601/pause with message before the layer that first bridges the traps (key layer ±0); OctoPrint log shows paused then resumed; job completes.
Proposed partial credit
45% correct pause layer; 15% message; 40% pause/resume on printer
R07.07.01.03-T16 Calibrate flow rate in OrcaSlicer from a photo of calibration patches
Original instruction
In OrcaSlicer 2.2 open the flow-rate calibration (pass 1) project for the current filament 'Generic PETG'. The printed result is photographed in input/flow_pass1.jpg. Pick the smoothest patch, compute the new flow ratio per Orca's formula, save it to the filament preset 'PETG-Calibrated' and export the preset to out/petg.json.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- OrcaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentclick· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
petg.json filament_flow_ratio equals expert-picked patch formula value ±0.01; preset name; other fields unchanged from Generic PETG.
Proposed partial credit
40% patch choice; 40% computed ratio; 20% preset saved
R07.07.01.03-T17 Hollow a resin figurine with drain holes and supports for SLA
Original instruction
In PrusaSlicer (SLA mode, Original Prusa SL1S) load input/figurine.stl, hollow it with 2.0 mm wall thickness, add 2 drain holes Ø3 mm at the lowest points relative to the chosen orientation (tilted 30° back), generate supports (default + extra points on the chin), and export out/figurine.sl1s.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
geom· Precise geometryclick· Point & clickvis· Visual judgment- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Exported archive: hollowed mesh with interior offset 2.0±0.1 mm; 2 drain holes at lowest points of cavity (no trapped volume—flood-fill check); supports present under chin; tilt 30±2°. PrusaSlicer command-line mode is blocked for the agent (the CLI is grader-only); out/ files written by any process other than the PrusaSlicer GUI are flagged by a file audit log.
Proposed partial credit
30% hollowing; 30% drain holes / no trapped resin; 25% supports; 15% orientation
R07.07.01.03-T18 Detect spaghetti failure from the camera and stop the print safely
Original instruction
The sandbox OctoPrint virtual printer runs a long job with a simulated webcam. At an unknown time the print detaches and turns to spaghetti. Monitor the stream, and within 2 layers of failure onset cancel the job so that the hotend parks, heaters are turned off and the bed stays at 40 °C for removal (per docs/cancel_sop.md). Do not cancel on false alarms (a blob event occurs earlier).
- Platforms
web· Any OS (web)- Applications
- OctoPrint
- Interfaces
brow· Browserhmi· Device/HMI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
vis· Visual judgmentrt· Real-time controlclick· Point & click- Work product
WP08· App/system state- Conditions
interrupt· Interruptionsrisk· Irreversible/risky- Proposed difficulty
- 5 / 5
Proposed verifier
Serial log: cancel within 2 layers after seeded failure layer, not before (no cancel at blob event); post-cancel commands: park move, M104 S0, M140 S40; job state Cancelled.
Proposed partial credit
40% timely detection; 20% no false cancel; 40% SOP commands
R07.07.01.03-T19 Requeue a failed job on an idle printer across a small print farm
Original instruction
Three sandbox Klipper/Moonraker printers are shown in a Mainsail multi-printer dashboard. Printer B reports a thermal runaway error mid-job. Clear nothing on B; instead re-slice the job's 3MF (input/job_b.3mf) for printer C's profile (different nozzle 0.6), upload it to C, start it, and log the incident in out/incident.md with time and error text.
- Platforms
web· Any OS (web)mac· macOSwin· Windows- Applications
- Mainsail · PrusaSlicer · Moonraker
- Interfaces
brow· Browserdesk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
multi· Cross-appclick· Point & clickvis· Visual judgment- Work product
WP08· App/system state- Conditions
multiapp· Multi-apprisk· Irreversible/risky- Proposed difficulty
- 5 / 5
Proposed verifier
Moonraker APIs (grader): printer B state untouched (still error); printer C running a file sliced for 0.6 nozzle (G-code header) from job_b; incident.md contains error text and timestamp.
Proposed partial credit
15% B untouched; 40% correct re-slice; 30% started on C; 15% incident log
R07.07.01.03-T20 Set up sequential printing of four parts with extruder clearance
Original instruction
In PrusaSlicer enable Complete individual objects for input/knobs_x4.3mf on an MK4, set extruder clearance radius 45 mm / height 20 mm, arrange the 4 knobs so the sequence prints shortest first without collisions, and export out/knobs.bgcode.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- PrusaSlicer
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clicktype· Text & forms- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
3MF config: complete_objects=1 with clearance values; object footprints spaced ≥ clearance; print order ascending height; G-code shows objects completed sequentially; slicer reports no collision warning.
Proposed partial credit
30% settings; 40% arrangement clearance; 30% order & G-code
Mapped research references
No benchmark reference is assigned to this class in the current mapping.