Gringotts Lighting Console
Explore a LEGO-style Gringotts Wizarding Bank in 3D: switch bright, night and golden-hall lighting, fog and weathering. Open and play. Copy the prompt on Kimi Build.
Loading preview...
4314 views
Start with this prompt
Generate a 3D Gringotts console with live lighting controls.
Role and Goal You are a technical artist proficient in both Blender (bpy scripting) and modern Web 3D (Three.js). Use procedural modeling in local Blender to build a LEGO-style Gringotts Wizarding Bank, complete weathered materials and rendering under three lighting moods, and finally deliver an interactive web console for adjusting lighting mood and details in real time in the browser. Throughout: save all outputs to the current workspace; open and inspect every render result and iterate on any problems found; before delivering the web page, actually open and verify it in a real/headless browser, and leave no background server processes running. Reference Mood (two reference images) Modeling reference: official images of LEGO set 76417 Gringotts — white marble facade + portico columns + "GRINGOTTS BANK" sign + green dome + Ukrainian Ironbelly dragon on top + underground vaults and mine-cart tracks supported by rock pillars below. Atmosphere reference: Gringotts marble hall concept art — weathered dark marble, gold ornaments, warm golden top light from crystal chandeliers, cold light beams through round windows, dots of candlelight, strong chiaroscuro and volumetric light. Part 1: Scene Building (Blender bpy script, run in background mode -b --python) Scale convention: 1 LEGO unit = 1 Blender unit; stud spacing 1.6, stud radius 0.45, stud height 0.35. All materials use a LEGO plastic feel (Principled, Roughness≈0.28, Coat≈0.25). Required structures: Bank main body: white/light-gray marble main building (width 22 × height 15) with horizontal brick-pattern lines on the facade; a four-column portico (column base + shaft + ring band + capital) + architrave; recessed brown double doors + golden spherical knobs + white door frame; a circular transom window above the door (golden cross muntins); a "GRINGOTTS BANK" golden 3D-letter sign (positioned between the two inner columns to avoid occlusion); three-story wing buildings on both sides (white window frames, cornices, roof studs). Facade details: two outward-tilted black-framed windows + black balcony railings; 4 cast-iron wall lamps in total on the entrance and wing walls (emissive material LampGlow). Dome tower: white drum (8 small windows + cornice ring) + green hemispherical dome + golden ribs and a finial ball. Ukrainian Ironbelly: gray-white body lying on the front edge of the dome, double-layered inner/outer membrane wings (with leading-edge spars, wing fingers, wing claws), golden horns and golden pupils, dorsal spikes, four grasping limbs with golden claws, tail wrapped around the dome; breathing double-layered fire (orange outer flame FireOuter + bright-yellow inner flame FireInner, emissive); a 9-link iron chain from the neck to the dome. Left side · magical pet shop: deep-red storefront + golden MENAGERIE sign, green window frames, double-pitched gray roof, black four-corner spire, orange chimneys ×2. Right side · annex building: two-story beige/white striped walls, double-pitched roof, wall lamps ×2, a small owl on the roof. Underground section: layered, staggered rock pillars (three gray rock materials) supporting the platform; a circular vault door on the front (golden door disc + dark-gray spokes and hub); two curved mine-cart track segments (rails + sleepers) + a cart loaded with gold coins; a ground-level track loop + track support pillars; 8 hanging stalactites, 3 chains hanging under the platform, a cage elevator hanging from a boom on the left; the platform widened and supported by rocks. Atmosphere props: four entrance steps, two black cast-iron street lamps (LampGlow emissive lamp heads), gold ingots and coin piles at the entrance, 4 LEGO minifigures (goblin banker, blue-robed wizard, green-robed wizard, helmeted guard). Ground: large plane (switch color between bright/dark renders). Camera: portrait 620×800, 50mm, 3/4 front-side view; framing must cover everything from the ground to the top of the dragon's wings. Part 2: Material Weathering Add procedural weathering nodes to 10 materials — marble, white brick, gray brick, the three rocks, dome green, tan-brown walls, dragon body, dragon wings — (no UVs; use Generated coordinates): Noise Texture (Scale 3.5–8, Detail 6, Roughness 0.75) → ColorRamp (dark stain color ↔ original base color) → Mix (MULTIPLY, Factor 0.35–0.6) → Base Color, creating stains and rain-streak infiltration. A second high-frequency Noise (Scale≈22) → Map Range → Roughness (varying within ±0.15/+0.45 of the original roughness). Add duplicate-application guards (skip if the nodes already exist). Part 3: Three Lighting Moods and Rendering Render three 620×800 PNGs under the same camera by switching light groups (EEVEE, raytracing on, AgX medium-high contrast): Bright version gringotts_light.png: near-white world environment (strength≈0.45), warm-white key DISK area light + cold-blue fill + top rim light (energy 350–750), light-gray ground. Product-photography quality: white areas not overexposed, clear light-dark separation on the columns and facade. Night version gringotts_dark.png: deep blue-black world (an extremely dark blue at strength≈0.85), cold-blue moonlight key + weak cold fill + faint warm frontal light; raise street/wall lamp emission to 35–40 with warm point lights; warm light at the vault door, point lights at the flames. Overall readable silhouette + warm light accents. Golden hall version gringotts_golden.png (matching the atmosphere reference): dark warm world (0.035, 0.024, 0.012); strong warm golden area light from above (≈7000, color 1.0/0.74/0.38, simulating chandeliers) + frontal warm light + warm fill; cold-blue Spot light shafts on both sides (≈10000–14000); a large-cube Principled Volume (Density≈0.0045, Anisotropy 0.35) for visible light beams; compositor Glare (Fog Glow, Threshold 1.0, Size 0.7) for bloom; all candle/fire point lights on. Note Blender 5.x compatibility: use scene.compositing_node_group for the compositor (node-group API; Glare's Type enum is 'Fog Glow'); new node naming is affected by UI language, so set use_translate_new_dataname = False at the start of the script or find nodes by n.type=='BSDF_PRINCIPLED'. Replace the Gringotts bank building with Hogwarts castle: keep the three lighting-mood buttons and four camera presets, changed to overview, Great Hall tower, astronomy tower, and the Black Lake boathouse; the weathered materials and the fire/lamp slider logic stay unchanged. Part 4: Interactive Lighting Console (web page) Tech stack: Vite + Three.js (npm run dev must start and forward host/port arguments). Export the model from Blender via glTF as GLB (meshes only; convert text to mesh before export). Also generate a 512px multi-octave noise grunge texture grunge.png with Python (PIL/numpy) (near-white base + dark blotches + vertical rain streaks). Page features (all must be implemented and verified): Left frosted-glass control panel, titled "Gringotts · Lighting Console". Lighting mood buttons ×3: ☀️ Bright / 🌙 Night / 🏛️ Golden Hall — corresponding to the three lighting parameter sets from Part 3 (background color, hemisphere light, directional/spot light color-intensity-position, fog color), with Golden Hall as the default. Camera buttons ×4: Panorama / Front Facade / Dome Dragon / Underground Vault — the camera flies between positions with easing (OrbitControls, damping on). Sliders ×4: 🔥 Fire Intensity (Fire material emissiveIntensity + flame point lights), 🏮 Lamp Intensity (LampGlow material + 8 lamp point lights), 🌫️ Fog Density (FogExp2 density scaled per mood), 🕸️ Weathering Amount (grunge texture overlaid as map + base color darkened + roughness raised; fully removed at 0). Fire and lamps have random flicker animation; auto-rotate toggle. Support URL parameters for direct states (?mood=night&cam=vault&fire=1.5). ACESFilmic tone mapping, dark page UI, no login/permission gate, immediately interactive on first screen. Verification: start a temporary dev server, use headless Chrome (--use-angle=swiftshader) to screenshot and visually inspect three states — default Golden Hall, ?mood=night&cam=vault, and ?mood=bright&cam=dragon — confirming correct rendering; the server must be stopped after verification, and the deliverable must include the [http://localhost:7100/](http://localhost:7100/) preview link and the absolute project path. Deliverables gringotts_lego.blend — complete editable scene (with weathered materials and Golden Hall lighting) gringotts_light.png / gringotts_dark.png / gringotts_golden.png — three mood renders gringotts-web/ — interactive lighting console (with GLB model and grunge texture) bpy scripts for the modeling/enhancement/rendering stages (reproducible) Quality Red Lines After every render, open the image and check: complete framing (dragon wings not cropped), whites not overexposed, shadows readable, sign not occluded; adjust parameters and re-render if any check fails. Numbers must be self-consistent: light positions/camera coordinates use the Blender→Three.js (x, z, −y) conversion. Do not fake success: keep the original error for any failing step and fix it; retry at most once before switching approach.
Role and Goal You are a technical artist proficient in both Blender (bpy scripting) and modern Web 3D (Three.js). Use procedural modeling in local Blender to build a LEGO-style Gringotts Wizarding Bank, complete weathered materials and rendering under three lighting moods, and finally deliver an interactive web console for adjusting lighting mood and details in real time in the browser. Throughout: save all outputs to the current workspace; open and inspect every render result and iterate on any problems found; before delivering the web page, actually open and verify it in a real/headless browser, and leave no background server processes running. Reference Mood (two reference images) Modeling reference: official images of LEGO set 76417 Gringotts — white marble facade + portico columns + "GRINGOTTS BANK" sign + green dome + Ukrainian Ironbelly dragon on top + underground vaults and mine-cart tracks supported by rock pillars below. Atmosphere reference: Gringotts marble hall concept art — weathered dark marble, gold ornaments, warm golden top light from crystal chandeliers, cold light beams through round windows, dots of candlelight, strong chiaroscuro and volumetric light. Part 1: Scene Building (Blender bpy script, run in background mode -b --python) Scale convention: 1 LEGO unit = 1 Blender unit; stud spacing 1.6, stud radius 0.45, stud height 0.35. All materials use a LEGO plastic feel (Principled, Roughness≈0.28, Coat≈0.25). Required structures: Bank main body: white/light-gray marble main building (width 22 × height 15) with horizontal brick-pattern lines on the facade; a four-column portico (column base + shaft + ring band + capital) + architrave; recessed brown double doors + golden spherical knobs + white door frame; a circular transom window above the door (golden cross muntins); a "GRINGOTTS BANK" golden 3D-letter sign (positioned between the two inner columns to avoid occlusion); three-story wing buildings on both sides (white window frames, cornices, roof studs). Facade details: two outward-tilted black-framed windows + black balcony railings; 4 cast-iron wall lamps in total on the entrance and wing walls (emissive material LampGlow). Dome tower: white drum (8 small windows + cornice ring) + green hemispherical dome + golden ribs and a finial ball. Ukrainian Ironbelly: gray-white body lying on the front edge of the dome, double-layered inner/outer membrane wings (with leading-edge spars, wing fingers, wing claws), golden horns and golden pupils, dorsal spikes, four grasping limbs with golden claws, tail wrapped around the dome; breathing double-layered fire (orange outer flame FireOuter + bright-yellow inner flame FireInner, emissive); a 9-link iron chain from the neck to the dome. Left side · magical pet shop: deep-red storefront + golden MENAGERIE sign, green window frames, double-pitched gray roof, black four-corner spire, orange chimneys ×2. Right side · annex building: two-story beige/white striped walls, double-pitched roof, wall lamps ×2, a small owl on the roof. Underground section: layered, staggered rock pillars (three gray rock materials) supporting the platform; a circular vault door on the front (golden door disc + dark-gray spokes and hub); two curved mine-cart track segments (rails + sleepers) + a cart loaded with gold coins; a ground-level track loop + track support pillars; 8 hanging stalactites, 3 chains hanging under the platform, a cage elevator hanging from a boom on the left; the platform widened and supported by rocks. Atmosphere props: four entrance steps, two black cast-iron street lamps (LampGlow emissive lamp heads), gold ingots and coin piles at the entrance, 4 LEGO minifigures (goblin banker, blue-robed wizard, green-robed wizard, helmeted guard). Ground: large plane (switch color between bright/dark renders). Camera: portrait 620×800, 50mm, 3/4 front-side view; framing must cover everything from the ground to the top of the dragon's wings. Part 2: Material Weathering Add procedural weathering nodes to 10 materials — marble, white brick, gray brick, the three rocks, dome green, tan-brown walls, dragon body, dragon wings — (no UVs; use Generated coordinates): Noise Texture (Scale 3.5–8, Detail 6, Roughness 0.75) → ColorRamp (dark stain color ↔ original base color) → Mix (MULTIPLY, Factor 0.35–0.6) → Base Color, creating stains and rain-streak infiltration. A second high-frequency Noise (Scale≈22) → Map Range → Roughness (varying within ±0.15/+0.45 of the original roughness). Add duplicate-application guards (skip if the nodes already exist). Part 3: Three Lighting Moods and Rendering Render three 620×800 PNGs under the same camera by switching light groups (EEVEE, raytracing on, AgX medium-high contrast): Bright version gringotts_light.png: near-white world environment (strength≈0.45), warm-white key DISK area light + cold-blue fill + top rim light (energy 350–750), light-gray ground. Product-photography quality: white areas not overexposed, clear light-dark separation on the columns and facade. Night version gringotts_dark.png: deep blue-black world (an extremely dark blue at strength≈0.85), cold-blue moonlight key + weak cold fill + faint warm frontal light; raise street/wall lamp emission to 35–40 with warm point lights; warm light at the vault door, point lights at the flames. Overall readable silhouette + warm light accents. Golden hall version gringotts_golden.png (matching the atmosphere reference): dark warm world (0.035, 0.024, 0.012); strong warm golden area light from above (≈7000, color 1.0/0.74/0.38, simulating chandeliers) + frontal warm light + warm fill; cold-blue Spot light shafts on both sides (≈10000–14000); a large-cube Principled Volume (Density≈0.0045, Anisotropy 0.35) for visible light beams; compositor Glare (Fog Glow, Threshold 1.0, Size 0.7) for bloom; all candle/fire point lights on. Note Blender 5.x compatibility: use scene.compositing_node_group for the compositor (node-group API; Glare's Type enum is 'Fog Glow'); new node naming is affected by UI language, so set use_translate_new_dataname = False at the start of the script or find nodes by n.type=='BSDF_PRINCIPLED'. Add a weather switch group to the console: rain, snow, and fog. Each enables matching particle effects, raises ground and marble reflectivity accordingly, links the fog slider to the fog switch, and supports deep links via URL params (e.g. ?weather=snow). Part 4: Interactive Lighting Console (web page) Tech stack: Vite + Three.js (npm run dev must start and forward host/port arguments). Export the model from Blender via glTF as GLB (meshes only; convert text to mesh before export). Also generate a 512px multi-octave noise grunge texture grunge.png with Python (PIL/numpy) (near-white base + dark blotches + vertical rain streaks). Page features (all must be implemented and verified): Left frosted-glass control panel, titled "Gringotts · Lighting Console". Lighting mood buttons ×3: ☀️ Bright / 🌙 Night / 🏛️ Golden Hall — corresponding to the three lighting parameter sets from Part 3 (background color, hemisphere light, directional/spot light color-intensity-position, fog color), with Golden Hall as the default. Camera buttons ×4: Panorama / Front Facade / Dome Dragon / Underground Vault — the camera flies between positions with easing (OrbitControls, damping on). Sliders ×4: 🔥 Fire Intensity (Fire material emissiveIntensity + flame point lights), 🏮 Lamp Intensity (LampGlow material + 8 lamp point lights), 🌫️ Fog Density (FogExp2 density scaled per mood), 🕸️ Weathering Amount (grunge texture overlaid as map + base color darkened + roughness raised; fully removed at 0). Fire and lamps have random flicker animation; auto-rotate toggle. Support URL parameters for direct states (?mood=night&cam=vault&fire=1.5). ACESFilmic tone mapping, dark page UI, no login/permission gate, immediately interactive on first screen. Verification: start a temporary dev server, use headless Chrome (--use-angle=swiftshader) to screenshot and visually inspect three states — default Golden Hall, ?mood=night&cam=vault, and ?mood=bright&cam=dragon — confirming correct rendering; the server must be stopped after verification, and the deliverable must include the [http://localhost:7100/](http://localhost:7100/) preview link and the absolute project path. Deliverables gringotts_lego.blend — complete editable scene (with weathered materials and Golden Hall lighting) gringotts_light.png / gringotts_dark.png / gringotts_golden.png — three mood renders gringotts-web/ — interactive lighting console (with GLB model and grunge texture) bpy scripts for the modeling/enhancement/rendering stages (reproducible) Quality Red Lines After every render, open the image and check: complete framing (dragon wings not cropped), whites not overexposed, shadows readable, sign not occluded; adjust parameters and re-render if any check fails. Numbers must be self-consistent: light positions/camera coordinates use the Blender→Three.js (x, z, −y) conversion. Do not fake success: keep the original error for any failing step and fix it; retry at most once before switching approach.
Role and Goal You are a technical artist proficient in both Blender (bpy scripting) and modern Web 3D (Three.js). Use procedural modeling in local Blender to build a LEGO-style Gringotts Wizarding Bank, complete weathered materials and rendering under three lighting moods, and finally deliver an interactive web console for adjusting lighting mood and details in real time in the browser. Throughout: save all outputs to the current workspace; open and inspect every render result and iterate on any problems found; before delivering the web page, actually open and verify it in a real/headless browser, and leave no background server processes running. Reference Mood (two reference images) Modeling reference: official images of LEGO set 76417 Gringotts — white marble facade + portico columns + "GRINGOTTS BANK" sign + green dome + Ukrainian Ironbelly dragon on top + underground vaults and mine-cart tracks supported by rock pillars below. Atmosphere reference: Gringotts marble hall concept art — weathered dark marble, gold ornaments, warm golden top light from crystal chandeliers, cold light beams through round windows, dots of candlelight, strong chiaroscuro and volumetric light. Part 1: Scene Building (Blender bpy script, run in background mode -b --python) Scale convention: 1 LEGO unit = 1 Blender unit; stud spacing 1.6, stud radius 0.45, stud height 0.35. All materials use a LEGO plastic feel (Principled, Roughness≈0.28, Coat≈0.25). Required structures: Bank main body: white/light-gray marble main building (width 22 × height 15) with horizontal brick-pattern lines on the facade; a four-column portico (column base + shaft + ring band + capital) + architrave; recessed brown double doors + golden spherical knobs + white door frame; a circular transom window above the door (golden cross muntins); a "GRINGOTTS BANK" golden 3D-letter sign (positioned between the two inner columns to avoid occlusion); three-story wing buildings on both sides (white window frames, cornices, roof studs). Facade details: two outward-tilted black-framed windows + black balcony railings; 4 cast-iron wall lamps in total on the entrance and wing walls (emissive material LampGlow). Dome tower: white drum (8 small windows + cornice ring) + green hemispherical dome + golden ribs and a finial ball. Ukrainian Ironbelly: gray-white body lying on the front edge of the dome, double-layered inner/outer membrane wings (with leading-edge spars, wing fingers, wing claws), golden horns and golden pupils, dorsal spikes, four grasping limbs with golden claws, tail wrapped around the dome; breathing double-layered fire (orange outer flame FireOuter + bright-yellow inner flame FireInner, emissive); a 9-link iron chain from the neck to the dome. Left side · magical pet shop: deep-red storefront + golden MENAGERIE sign, green window frames, double-pitched gray roof, black four-corner spire, orange chimneys ×2. Right side · annex building: two-story beige/white striped walls, double-pitched roof, wall lamps ×2, a small owl on the roof. Underground section: layered, staggered rock pillars (three gray rock materials) supporting the platform; a circular vault door on the front (golden door disc + dark-gray spokes and hub); two curved mine-cart track segments (rails + sleepers) + a cart loaded with gold coins; a ground-level track loop + track support pillars; 8 hanging stalactites, 3 chains hanging under the platform, a cage elevator hanging from a boom on the left; the platform widened and supported by rocks. Atmosphere props: four entrance steps, two black cast-iron street lamps (LampGlow emissive lamp heads), gold ingots and coin piles at the entrance, 4 LEGO minifigures (goblin banker, blue-robed wizard, green-robed wizard, helmeted guard). Ground: large plane (switch color between bright/dark renders). Camera: portrait 620×800, 50mm, 3/4 front-side view; framing must cover everything from the ground to the top of the dragon's wings. Part 2: Material Weathering Add procedural weathering nodes to 10 materials — marble, white brick, gray brick, the three rocks, dome green, tan-brown walls, dragon body, dragon wings — (no UVs; use Generated coordinates): Noise Texture (Scale 3.5–8, Detail 6, Roughness 0.75) → ColorRamp (dark stain color ↔ original base color) → Mix (MULTIPLY, Factor 0.35–0.6) → Base Color, creating stains and rain-streak infiltration. A second high-frequency Noise (Scale≈22) → Map Range → Roughness (varying within ±0.15/+0.45 of the original roughness). Add duplicate-application guards (skip if the nodes already exist). Part 3: Three Lighting Moods and Rendering Render three 620×800 PNGs under the same camera by switching light groups (EEVEE, raytracing on, AgX medium-high contrast): Bright version gringotts_light.png: near-white world environment (strength≈0.45), warm-white key DISK area light + cold-blue fill + top rim light (energy 350–750), light-gray ground. Product-photography quality: white areas not overexposed, clear light-dark separation on the columns and facade. Night version gringotts_dark.png: deep blue-black world (an extremely dark blue at strength≈0.85), cold-blue moonlight key + weak cold fill + faint warm frontal light; raise street/wall lamp emission to 35–40 with warm point lights; warm light at the vault door, point lights at the flames. Overall readable silhouette + warm light accents. Golden hall version gringotts_golden.png (matching the atmosphere reference): dark warm world (0.035, 0.024, 0.012); strong warm golden area light from above (≈7000, color 1.0/0.74/0.38, simulating chandeliers) + frontal warm light + warm fill; cold-blue Spot light shafts on both sides (≈10000–14000); a large-cube Principled Volume (Density≈0.0045, Anisotropy 0.35) for visible light beams; compositor Glare (Fog Glow, Threshold 1.0, Size 0.7) for bloom; all candle/fire point lights on. Note Blender 5.x compatibility: use scene.compositing_node_group for the compositor (node-group API; Glare's Type enum is 'Fog Glow'); new node naming is affected by UI language, so set use_translate_new_dataname = False at the start of the script or find nodes by n.type=='BSDF_PRINCIPLED'. Switch all console copy — title, buttons, sliders — to English, and give each of the four camera presets a one-line English narration (e.g. "The dragon never sleeps."), addressed to international Harry Potter fans, while keeping the dark frosted-glass UI style. Part 4: Interactive Lighting Console (web page) Tech stack: Vite + Three.js (npm run dev must start and forward host/port arguments). Export the model from Blender via glTF as GLB (meshes only; convert text to mesh before export). Also generate a 512px multi-octave noise grunge texture grunge.png with Python (PIL/numpy) (near-white base + dark blotches + vertical rain streaks). Page features (all must be implemented and verified): Left frosted-glass control panel, titled "Gringotts · Lighting Console". Lighting mood buttons ×3: ☀️ Bright / 🌙 Night / 🏛️ Golden Hall — corresponding to the three lighting parameter sets from Part 3 (background color, hemisphere light, directional/spot light color-intensity-position, fog color), with Golden Hall as the default. Camera buttons ×4: Panorama / Front Facade / Dome Dragon / Underground Vault — the camera flies between positions with easing (OrbitControls, damping on). Sliders ×4: 🔥 Fire Intensity (Fire material emissiveIntensity + flame point lights), 🏮 Lamp Intensity (LampGlow material + 8 lamp point lights), 🌫️ Fog Density (FogExp2 density scaled per mood), 🕸️ Weathering Amount (grunge texture overlaid as map + base color darkened + roughness raised; fully removed at 0). Fire and lamps have random flicker animation; auto-rotate toggle. Support URL parameters for direct states (?mood=night&cam=vault&fire=1.5). ACESFilmic tone mapping, dark page UI, no login/permission gate, immediately interactive on first screen. Verification: start a temporary dev server, use headless Chrome (--use-angle=swiftshader) to screenshot and visually inspect three states — default Golden Hall, ?mood=night&cam=vault, and ?mood=bright&cam=dragon — confirming correct rendering; the server must be stopped after verification, and the deliverable must include the [http://localhost:7100/](http://localhost:7100/) preview link and the absolute project path. Deliverables gringotts_lego.blend — complete editable scene (with weathered materials and Golden Hall lighting) gringotts_light.png / gringotts_dark.png / gringotts_golden.png — three mood renders gringotts-web/ — interactive lighting console (with GLB model and grunge texture) bpy scripts for the modeling/enhancement/rendering stages (reproducible) Quality Red Lines After every render, open the image and check: complete framing (dragon wings not cropped), whites not overexposed, shadows readable, sign not occluded; adjust parameters and re-render if any check fails. Numbers must be self-consistent: light positions/camera coordinates use the Blender→Three.js (x, z, −y) conversion. Do not fake success: keep the original error for any failing step and fix it; retry at most once before switching approach.
