# Grouper Tender: Critique, round 1 (2026-10-22) The yardstick is what the user asked for: *"create me 3d model of this tender from this blueprint exactly"*, and the concept render (*"Check this picture as a referance"*). The blueprint rules shape (SIDE first). The concept rules the look. The user's standing rules apply too: look like the sheet, game-ready topology, real texture sets, no clipping, travel checked, moon pool 1 m. Nothing in the model, its scripts or the .blend was changed. Blender ran headless and read-only and saved nothing. My scripts and pictures are in `critique/round1/`. ## Scores | | score | basis | |---|---|---| | **Outline (blueprint)** | **88 %** | IoU recomputed against the Designer's masks: SIDE 0.935, TOP 0.945, FRONT 0.959, BACK 0.951, BOTTOM 0.863 (BOTTOM is a near copy of TOP). Most of SIDE's shortfall, 2,571 of its 3,305 missing sheet px, is in one box: the drum's mount under the nose (x 845-925, y 395-475). Leave that box out and SIDE is 0.976. In SIDE the door, porthole, seal, flag, lettering, vents, stern fins, duct, slot, skeg and lamp hump all sit within 1-3 sheet px (2-5 cm) of the drawing. | | **Look (concept)** | **62 %** | The palette is right: dark metal, cyan strips in grooves, a cyan collar ring, white lamps, the blue faceted scanner lens, "Subtub 1", a generic insignia and seal. What the eye reads first is wrong: strips 3-5x too wide, broken pixel traces, dark windows with almost no screens, a wire cage under the drum instead of a bracket, and a hull that is mid-grey gloss rather than satin gunmetal. | Verdict: **fix**. Seven major items are open. ## Pictures made for this review (`critique/round1/`) - `pair_side_nose.png`, `pair_side_stern.png`, `pair_side_mid.png`, `pair_side_hump.png`, `pair_side_pod.png`, `pair_top.png`, `pair_top_nose.png`, `pair_bottom.png`, `pair_front.png`, `pair_front_windows.png`, `pair_back.png`, `pair_back_low.png`: the sheet (left) beside the model's lookalike render (right), with the same crop and sheet-pixel rulers on both (`cr_pair.py`). - `iou_diff_.png`: grey is both, red is the sheet only, green is the model only (`cr_iou.py`, numbers in `iou.json`). - `concept_edges_over.png`, `concept_blend.png`: the model's edges from the fitted concept camera drawn over the concept (`cr_concept_overlay.py`). - `zoom_side_traces.png`, `zoom_side_stern.png`, `zoom_topo_cheek.png`: close-ups of the model's renders. - `checks/motion.json`: the motion check re-run from a copy (`cr_motion_check.py`). Results are the same as the Coder's: 0 hits; least gaps hatch 4.7 mm, doors 3.1 / 3.2 mm, antenna 6 mm, rotor 4.9 mm. - `cr_fold_audit.py`: re-run. It confirms 26 quads folded more than 90 deg and 432 twisted more than 25 deg. - `dump_mats.json`: objects, triangle counts, n-gons and material values, read from the .blend. ## MAJOR (the user would send it back for these) **1. SIDE / FRONT / concept: the scanner drum's mount is a wire cage, not the drawn bracket.** - The concept shows a solid dark bracket block. It runs from the lower nose to the back of the drum, the drum's ring is bolted to its front, and one bent tube hangs under it (`reference/z_concept_c_nose.png`). - The sheet's SIDE draws the same region as a closed shape, filled in the Designer's own mask: - a block on top of the drum's flange at x 893-925, y 398-412, with bolts; - a sled of rails at x 850-880, y 445-470; - two parallel bars leaning forward, from (880, 460) up to (918, 405). - The model has instead upper arms, a V-shaped U tube whose aft arm leans aft (from (870, 410) down to (880, 462) and up to (915, 438)), and thin rails. The drum looks as if it floats on wires. - SIDE silhouette in the box x 845-925, y 395-475: sheet 5,412 px, model 2,856 px. About 0.75 m² is missing. - Fix: - Build the bracket as a solid block, about 0.30 m wide. It comes out of the nose's underside at SIDE x 880-895 and runs forward to the drum flange's top (x 893-925, y 398-412). Its aft face slopes as the concept shows it. - Keep the bent tube under it: two parallel bars leaning forward, x 880→918, with the bend at the bottom (y 460-468), down to the sled rails at x 850-880, y 445-470. - FRONT's side plates (x 193-200 and 263-270, y 398-463) stay as they are. - Re-check the moon pool and the carousel afterwards. Both have margin today: 1.455 m, and 0.834 m at the side. **2. Topology: a dense, uniform grid with wavy flow and folded quads (the Spearfish lesson).** - The hull skin is 161 stations x 144 columns, 4-5 cm cells everywhere. `SM_Grouper_Hull` is 86,148 triangles, and there are no LODs. - The user sent the Spearfish back for this density (*"the topology is terrible"*: a 4 cm x 192-column grid, 137k triangles). The accepted rebuild was 64 columns by arc length and 31k triangles for the whole exterior. - `previews/v01_topo_z_nose.png` (crop `critique/round1/zoom_topo_cheek.png`) shows zig-zagging edge loops over the lower nose cheek and the pod's nose. That is the junction at SIDE x 836-850 that the README lists as open. It shows in the studio side render as shading smears on the lower nose. - `cr_fold_audit.py`: 26 quads folded more than 90 deg. - 14 sit in the front window frame's lower corners, at (+-0.60, -2.71, 0.00) and (+-0.56, -2.79, -0.27), in the most visible place on the model. - 10 sit at the pod nose / cheek, at (+-0.93, -1.69, -1.02). - 2 sit at the stern, at (+-0.42, 3.51, -0.63). - 432 quads are twisted more than 25 deg. - Fix: - Re-loft with about 64-80 columns placed by arc length and stations placed by need (the Spearfish's `sf_hull` way). Target about 35k triangles for the whole exterior. - Keep the openings as grid rectangles and the frames as swept trims. - Make the pod a straight nacelle that meets the hull along one fillet loop, so the cheek columns do not wander. - Bring the folds to 0 and the twists over 25 deg to under 20. - Add LOD1 and LOD2. **3. BACK: the pods' tail ends are lumps, not the drawn tail cones.** - BACK (`pair_back_low.png`) draws each pod's aft end as a round cone, clear of the hull. Each has four concentric rings (r 15 / 11 / 8 / 5 px) and is centred at (1140, 456) and (1272, 456). The hull's lower edge runs between them at y about 470. - In the model the pods bend in toward the hull and melt into it: smooth bulges at x 1121-1160, y 425-470, with no rings. The README lists this as open. - Fix: keep each pod's axis straight to its tail, at lateral +-1.017 m and z -1.382. End it in a cone with three stepped rings and a small end cap at BACK's radii (0.26 / 0.19 / 0.14 / 0.09 m on the sheet's BACK scale). Fillet only along the pod's top, where it meets the hull. **4. Look: the circuit traces are broken pixel lines.** - On the model they are dashed, stair-stepped and blotchy (`zoom_side_traces.png`). They were made by projecting the sheet's anti-aliased JPEG strokes, 1.5 sheet px (2.6 cm) wide, onto the flank. Many of those strokes are the drawing's outlines of other things, not traces. - Aft of the door there are almost none, only a few dashes near the vents. - The concept (`z_concept_c_flank.png`, `concept_pair.png`) shows clean, thin, continuous lines with right-angle and 45-deg bends and round end dots. They sit round the door, aft of it round the vents and the UI panel, and below the side window's aft corner. - Fix: draw the traces as vector polylines, 8-12 mm wide with 20 mm end dots, straight into the 4096 emissive map (no projection of the sheet's pixels). Lay them out after the concept's zones: in front of the door, round the vents and the panel aft of the door, down the cheek. Keep the trace panel's plate, but give it the hull's own finish. **5. Look: the light strips are 3-5x too wide.** - From the same fitted camera (`concept_render.png` beside `user_concept.jpg`), at picture columns 330-470: - concept: the upper strip is 2-3 px tall; - model: it is 8-14 px tall. - In SIDE (`lk_side.png`, 0.0086 m per px) the model's upper strip shows 0.10-0.13 m tall at x 500-760 and the lower one 0.07-0.09 m. The Designer's spec was 0.02-0.04 m (`LIGHT_STRIPS`). - The whole groove floor glows, and with emission 4 x lights the strips read as fat neon tubes. They dominate the flank. - Fix: make only a 25-35 mm line in the middle of each groove floor emissive, and leave the rest of the floor dark satin. Bring the strip emission down so the hull, not the strips, carries the picture. Do the same for the duct ring and the collar ring. **6. Look: the windows are dark. The concept's are full of lit cyan screens.** - From the concept camera (`concept_pair.png`) the front window is a black hole, and each window shows only two small screens with yellow-and-cyan bars. - In the concept both windows glow with many cyan instrument screens: a dashboard bank across the bottom of each window, overhead screens, side panels. The cabin reads as lit. - Fix: - Add a console screen bank facing each pilot along the bottom of the front and side glass. - Make the overhead screens about twice their current size and show them through the glass. - Make the UI cyan-dominant and drop the yellow. - Give the cabin a dim cyan emissive (screens, a ceiling strip) so it reads through the acrylic in water and in the studio. - No figures, as asked. **7. SECTION A-A: the seats are boxes.** - The sheet's section (`reference/z4_secA_tr.png`) draws two contoured bucket seats: headrest, side bolsters, a cushion, and armrest pads with controls on the outboard sides (x 1158-1165, y 140-160). Between them is a console with a two-pad control box (y 140-152) and a centre overhead screen. - The model's seats (`lk_section_close.png`, `v01_studio_cabin_door.png`) are a rectangular back slab with a thin bar for a headrest, on a box base. The console is a plain full-height slab. - Fix: model bucket seats with a headrest, bolsters and an outboard armrest pad (as the Spearfish's seats), a console with its control box, and the centre overhead screen. Keep X +-0.45 and the eye points, so `gr_view_check` still passes. ## MINOR 1. **Hull finish: grey gloss, not dark satin.** Studio side render: hull 92-150 sRGB, with sharp white streaks. `M_Grouper_Gunmetal` has clear coat 0.30 at roughness 0.08. The concept's hull is dark, soft satin metal. Fix: clear coat 0 to 0.1 at roughness 0.25 or more, base roughness 0.38-0.45, tint about 0.08 linear; check it again in the studio light. 2. **Frames and the trace panel look camouflaged.** The StainedSteel set at tile 0.70 shows as dark blotches on the window frames and the trace panel (`zoom_side_traces.png`). Fix: lower the set's contrast or tile it finer on those parts. 3. **The porthole looks like a hole.** Through the porthole the side render sees straight through both doors to the background (`lk_side.png` x 650-700, y 205-255). The concept shows a dark, deep porthole. Fix: tint the porthole acrylic, or put a dark inner liner in the porthole's sleeve. 4. **The lamp beside the drum is missing.** The concept has a bright lamp at its picture (703, 358), right of and below the drum face. The fit mapped it to the far pod lamp with a 58.3 px error, so the model has no lamp there. Fix: put a small lamp on the new bracket's side (item 1), where it lands within about 10 px of the concept from the fitted camera. 5. **The drum body has no ribs.** SIDE draws rings across the drum body at x 926, 931, 934, 938 and 942, and a dashed face edge at x 948. The model's drum is a smooth rounded tyre. Fix: add three or four shallow grooves round it. 6. **The duct is a plain can.** The concept shows the duct as a stepped cylinder: a thicker lip ring, then a step. Fix: add one step on the outside of the shroud at about 1/3 of its length. Keep the slot at x 530. 7. **The collar's claw pockets look like bare notches.** They read as four battlement cuts with pale floors (`v01_topo_z_collar.png`, q_aft render). The drawn collar is a smooth lens. Fix: keep the Kazah profile, but give the pockets the dark FrameDark finish and a chamfered edge, and stop the cyan ring cleanly at each pocket, so they read as designed clamp sockets. 8. **BACK: a plate that is not on the sheet.** The model has a wide trapezoid plate under the duct (BACK x 1175-1235, y 440-458). The sheet draws only the skeg's narrow blade (x 1200-1210 down to y 442) and two small slanted plates at (1180, 447) and (1236, 447). Fix: slim the skeg root ridge so it does not read from behind, and add the two small plates. 9. **Door details differ from the sheet.** SIDE draws two oval latches on the door's forward side, at (790, 368) and (790, 395). The model has square blocks there. The model's hinge knuckles stick out at the aft edge, (737, 362) and (737, 404); the sheet shows none. Fix: oval latches; hinges inside the leaf's edge, or flush. 10. **Hidden geometry inside the hull mesh.** `SM_Grouper_Hull` is 137 pieces with 116 part-to-part intersections, all intended seatings (`clash.json`). The faces sunk inside the skin are kept. Fix: when re-lofting (item 2), drop the faces that cannot be seen (the memory's game-ready rule). 11. **Texture density is low.** The hull atlas is 38 % filled, at 239 px/m on 4096. The Tender is seen close at docking. Fix: pack it better after the re-loft (fewer thin trim islands), aiming for at least 300 px/m. 12. **Scale versus the sheet's labels.** The sheet says 15,500 mm long. The model is 7.45 m (0.0171 m/px, set by the collar). The labels disagree with each other and with the drawing's own proportions (length to width 3.0 drawn, 5.5 labelled), so the choice is sound. The user should hear it in one line with the delivery, though, because the sheet's largest number says 15.5 m. ## What is right (checked, no action) - **SIDE.** It matches part for part, within 1-3 sheet px (`pair_side_stern.png`, `pair_side_mid.png`, `pair_side_pod.png`): - the duct (x 516-543, y 339-421) and its slot (x 530); - the stern fin's mount plate and wing; - the waist band's hourglass and both rims, door, porthole, vents, seal, insignia box, lettering box; - the lamp hump (x 842-862) and the collar's height; - the antenna's rake, the side window, the skeg. - **FRONT.** Silhouette 0.959. The window layout (front window and two side windows with mullions), the lamp heads, the sensor box, the drum face's place and size (r 33 px) and the pod lamps all match. The lamps' lateral (+-30 TOP px) is the documented compromise between TOP and FRONT. - **TOP and BOTTOM.** Widths match, 0.945. TOP's teardrop lamp fairings (40 px) and its forward ring disagree with SIDE, and SIDE rules. - **Checks.** - Moon pool at BOARD: 1.455 m (limit 1 m). - Carousel: side 0.834 m, roof 1.207 m. The BVH sweep has 0 crossings. - Clamp: 86 arm poses and the ship's 3 places, 0 hits, least gap 5 mm. - BOARD to POOL: 0 crossings. - Motion: re-run, 0 hits. - Cabin: 0 crossings, 0 cabin vertices seen from outside. - The seats' view: 51 % of the view through glass. - Drivers: simple expressions. - Mesh: no n-gons. UCX and FBX are present. - Texture sets come from the pack. - Markings: no brand names. The flag and seal are generic. - Items 1 and 2 change the geometry. After them, re-run the whole `run_checks.sh` chain, the surfaces pass and the comparison sheets.