Files
security-game/docs/screens/realism/2026-11-01-npc/report.md
T
zwitschi 1ee32215b0
Full build / Import + headless tests (push) Successful in 38s
Full build / Full desktop build + optional release (push) Skipped
Detail the NPC avatars and finish the realism follow-ups
Blender library
- Rebuild the face: sclera, iris and upper lid per eye, brow ridge, cheekbones,
  nose bridge and tip, ears with lobes, split upper/lower lips.
- Give each hand four fingers plus a thumb and end every sleeve in a cuff ring.
- Raise CHAR_MAX_VERTS 4000 -> 5000 (16 avatars still cost ~6.9 ms of a 50 ms
  frame), decimate the body to 26 %; characters are now 3,974-5,026 tris and
  3,744-4,807 verts. Rebuild all 8 variants and re-bake their AO maps.

Capture tooling
- Add a `portrait` stage to capture_realism.gd: freeze one NPC, park the crowd
  out of frame, stand the subject on open sidewalk, turn it into the camera and
  put the guard on the sunlit side. New --portrait-type=N picks the role.
- Add the npc_portrait_day concept and map the shot to it, so avatar detail is
  scored against a portrait instead of a wide street frame.

Flashlight
- Drop the fake additive beam (Materials.light_beam + the cone mesh): on GL
  Compatibility a first-person camera inside the cone renders it as a filled
  disc with a bright far ring. Keep the tight spot (14 deg, 20 m, energy 4.2)
  and its headless test; the visible shaft is now planned behind a Forward+
  preset.

Docs and task tracking
- Move the finished realism follow-ups (ground exposure, flashlight, NPC detail,
  judge re-check) to DONE.md and expand TODO.md with step-by-step plans for NPC
  gear fit, venue geometry plus the committed gallery, and the Forward+ preset.
- Record the decisions, gotchas and portrait recipe in MEMORY.md; update the
  Blender contract, the concept README and the capture section of README.md.
- Refresh the gallery captures affected by the avatar rebuild.

Checks: headless 228/228, Python 86/86, blender_assets audit exit 0,
scene_concepts audit all GOOD, screen_designs compare 11 good / 0 bad,
smoke_npc_budget OK, boot clean (only the known headless mesh warning).
2026-11-01 17:46:25 +01:00

16 KiB

Realism report: docs/screens/realism/2026-11-01-npc

Vision judge: google/gemini-2.5-flash-lite (scores 0-10, higher is more realistic compared with the concept target).

set shot target gap ↓ edges detail contrast overall lighting materials texture backdrop
after boulevard_day boulevard_skyline_day 0.168 23.78 9.03 40.34 3.0 4.0 3.0 3.0 6.0
after boulevard_night hollywood_entrance_rain_night 0.728 16.21 7.16 38.99 2.0 3.0 2.0 2.0 4.0
after entrance_day hollywood_entrance_morning 0.457 27.12 10.33 43.1 3.0 4.0 3.0 3.0 3.0
after entrance_late hollywood_entrance_rain_night 1.134 18.8 8.52 52.15 2.0 3.0 2.0 2.0 1.0
after joke_shop_door joke_shop_door_closeup 0.864 15.4 7.24 48.56 2.0 3.0 4.0 3.0 2.0
after npc_portrait npc_portrait_day 1.108 24.87 9.87 43.79 3.0 4.0 3.0 3.0 5.0
after street_day boulevard_skyline_day 0.119 19.96 7.55 43.9 2.0 3.0 2.0 2.0 4.0
after street_late boulevard_skyline_dusk 0.273 13.81 6.73 33.25 2.0 3.0 2.0 2.0 4.0
after street_night boulevard_skyline_dusk 0.308 12.51 6.14 25.49 2.0 3.0 2.0 2.0 3.0
after studio_door studio_stage_door_night 0.433 17.21 7.97 49.17 2.0 3.0 2.0 2.0 1.0
before boulevard_day boulevard_skyline_day 0.172 23.21 8.88 38.78 2.0 3.0 2.0 2.0 5.0
before boulevard_night hollywood_entrance_rain_night 0.723 16.02 7.13 39.4 2.0 3.0 2.0 2.0 4.0
before entrance_day hollywood_entrance_morning 0.442 25.88 9.86 40.18 2.0 3.0 2.0 2.0 3.0
before entrance_late hollywood_entrance_rain_night 1.105 18.4 8.41 51.61 2.0 3.0 2.0 2.0 3.0
before joke_shop_door joke_shop_door_closeup 0.818 14.84 7.04 47.63 3.0 3.0 4.0 3.0 5.0
before street_day boulevard_skyline_day 0.148 18.69 7.42 42.69 2.0 3.0 2.0 2.0 4.0
before street_late boulevard_skyline_dusk 0.224 12.95 6.27 31.94 2.0 3.0 2.0 2.0 4.0
before street_night boulevard_skyline_dusk 0.253 10.97 5.57 24.27 2.0 3.0 2.0 2.0 4.0
before studio_door studio_stage_door_night 0.395 16.62 7.65 48.52 2.0 3.0 2.0 2.0 1.0

Mean scores per set (all captured shots):

set shots gap ↓ overall lighting materials texture_detail backdrop characters
after 10 0.559 2.3 3.3 2.5 2.4 3.3 2.2
before 9 0.476 2.11 3.0 2.22 2.11 3.67 2.33

Mean over the shots every set captured (like for like):

set shots gap ↓ overall lighting materials texture_detail backdrop characters
after 9 0.498 2.22 3.22 2.44 2.33 3.11 2.22

after / boulevard_day fixes:

  • Improve the lighting model to better simulate global illumination and soft shadows, especially for the sky and ambient light.
  • Increase the polygon count and add normal maps to the trees and foliage to give them a more organic and detailed appearance.
  • Replace the current brick material with a more detailed texture that includes variations in color, mortar lines, and subtle imperfections.
  • Add more complex geometry and finer details to the buildings in the background, such as windows, balconies, and architectural elements, to match the target's complexity.
  • Implement a more sophisticated atmospheric perspective effect for the distant cityscape to create a greater sense of depth and realism.

after / boulevard_night fixes:

  • Improve the lighting to be more atmospheric and volumetric, with softer shadows and more realistic reflections on wet surfaces.
  • Enhance material properties for brick, pavement, and building facades to include more subtle variations, specularity, and roughness.
  • Increase texture detail on all surfaces, especially the brickwork, pavement, and character models, to reduce the 'plastic' look.
  • Redesign character models to be more anatomically correct and detailed, with better clothing textures and facial features.
  • Add more subtle environmental details like rain streaks, puddles with ripples, and more varied foliage to enhance realism.

after / entrance_day fixes:

  • Improve brick texture and material to add more variation, grime, and imperfections.
  • Add atmospheric perspective and volumetric fog to the background to create depth and match the target's hazy distance.
  • Enhance lighting to include softer shadows, more subtle ambient occlusion, and realistic light falloff, especially around the marquee lights.
  • Replace low-polygon trees with more detailed models that have varied leaf textures and shapes.
  • Add subtle surface imperfections and wear to the concrete sidewalk and steps.

after / entrance_late fixes:

  • Improve the lighting to match the dramatic, atmospheric, and volumetric lighting of the target image. Focus on warm, directional light from the marquee and street lamp, with soft ambient occlusion and reflections.
  • Enhance material properties for realism. The brickwork, pavement, and building facade in the capture are too flat and lack subsurface scattering or specular highlights. The target image shows wet, reflective surfaces with subtle variations in material.
  • Increase texture detail significantly. The brick textures are low-resolution and repetitive. The target image features high-resolution, varied brick patterns with grime and weathering.
  • Redesign the backdrop to include a distant city skyline with atmospheric perspective (haze) and more detailed building structures, similar to the target image.
  • Refine the character model and its integration into the scene. The character in the capture is low-poly and appears out of place. The target image's character has more realistic proportions, clothing detail, and is better lit to blend with the environment.

after / joke_shop_door fixes:

  • Improve brick texture and material properties to match the target's depth and roughness.
  • Enhance the lighting to create softer, more volumetric shadows and a warmer glow from the lamp.
  • Add more detail to the building facade, such as subtle variations in brick color and mortar.
  • Introduce atmospheric perspective and haze to the distant cityscape to create a sense of depth.
  • Significantly increase the polygon count and detail of the character model to match the target's realism.

after / npc_portrait fixes:

  • Improve character model realism: Focus on facial features, skin texture, and clothing wrinkles to match the target's detail and natural appearance.
  • Enhance material properties: Make brick, pavement, and clothing materials more realistic with better specular highlights, subsurface scattering, and wear/tear details.
  • Refine lighting: Mimic the warm, directional lighting of the target, paying attention to soft shadows and rim lighting on the character.
  • Increase texture detail: Apply higher resolution and more nuanced textures to all surfaces, especially the character's skin and clothing, and the brickwork.
  • Adjust backdrop realism: Add atmospheric perspective (haze) to the distant city skyline and improve the detail and lighting of the palm trees to match the target.

after / street_day fixes:

  • Improve road material to have more subtle variations in color and reflectivity, and add tire marks and debris.
  • Enhance building textures with more detailed facades, windows, and architectural elements. Add subtle weathering and grime.
  • Increase the density and variety of vegetation, ensuring realistic palm tree models and ground cover.
  • Refine lighting to create softer shadows, more atmospheric scattering, and realistic specular highlights on surfaces.
  • Add atmospheric perspective to the distant cityscape with appropriate haze and color grading to simulate distance.

after / street_late fixes:

  • Improve the lighting to match the warm, atmospheric glow of the target image, paying close attention to the neon signs and streetlights.
  • Enhance material properties for buildings, road, and vehicles to achieve a more realistic PBR (Physically Based Rendering) look, with appropriate reflections and surface imperfections.
  • Increase texture detail on all surfaces, especially the road and building facades, to add depth and realism.
  • Refine the backdrop, particularly the city skyline and atmospheric haze, to create a more convincing sense of distance and depth.
  • Significantly improve character models and their integration into the scene, as they currently appear very low-fidelity and out of place.

after / street_night fixes:

  • Improve lighting to match the warm, atmospheric glow of the target, especially the neon signs and streetlights.
  • Increase the detail and realism of building materials and textures, adding grime, wear, and more complex architectural features.
  • Enhance the texture detail on the road surface, palm trees, and vehicles to be less uniform and more photorealistic.
  • Refine the backdrop, adding atmospheric haze and more detailed city silhouettes that mimic the depth and complexity of the target.
  • Significantly improve character models and animations to match the realistic style of the target image.

after / studio_door fixes:

  • Improve the lighting to match the dramatic, moody atmosphere of the target, focusing on soft, volumetric light and realistic reflections.
  • Enhance material properties for the building facade, car, and pavement to achieve a more realistic look with appropriate specularity, roughness, and subsurface scattering.
  • Increase texture detail on all surfaces, especially the brickwork, stone, and car paint, to add fine details and imperfections.
  • Add atmospheric effects like fog or haze to the backdrop to create depth and a sense of distance, similar to the target image.
  • Significantly improve character models and their integration into the scene, paying attention to detail, lighting, and animation.

before / boulevard_day fixes:

  • Improve road and sidewalk materials to have more realistic roughness and subtle variations.
  • Add significantly more geometric detail and realistic textures to buildings, especially the brickwork.
  • Replace low-polygon trees and foliage with more detailed and varied models, and add more natural scattering.
  • Enhance lighting to include softer shadows, more realistic ambient occlusion, and subtle specular highlights on surfaces.
  • Implement atmospheric perspective for the distant cityscape to create a sense of depth and haze.

before / boulevard_night fixes:

  • Improve lighting to match the dramatic, atmospheric, and volumetric lighting of the target image, focusing on warm, directional light from the marquee and street lamp, with realistic reflections on wet surfaces.
  • Enhance material properties to achieve a more realistic look, particularly for the brickwork, pavement, and building facade, incorporating subtle imperfections, wear, and specular highlights that react realistically to light.
  • Increase texture detail significantly across all assets, especially the brick walls, pavement, and character models, to add depth, realism, and a sense of age and grit.
  • Redesign character models to be more anatomically correct and detailed, with realistic clothing textures and subtle animations that convey a sense of life and presence.
  • Refine the backdrop to include more atmospheric elements like fog, rain effects, and a more detailed, less stylized cityscape with appropriate haze for distance.

before / entrance_day fixes:

  • Improve brick texture and material properties to add more variation, grime, and imperfections.
  • Enhance lighting to create softer shadows, more atmospheric volumetric light, and a warmer, more natural color temperature.
  • Add more detailed geometry and textures to the building facade, windows, and surrounding elements like trees and planters.
  • Introduce atmospheric perspective and fog to the distant cityscape to create a sense of depth and realism.
  • Replace low-polygon trees with more detailed models and textures that better match the target's style.

before / entrance_late fixes:

  • Improve the lighting to be more atmospheric and volumetric, with softer shadows and more realistic light falloff, especially around the marquee and streetlights.
  • Enhance material properties for brick, pavement, and building facades to include realistic reflections, specularity, and subsurface scattering where appropriate.
  • Increase texture resolution and detail for all surfaces, particularly the brickwork, to reduce the appearance of tiling and blurriness.
  • Add more complex geometry and detail to the backdrop buildings and sky, including atmospheric perspective and subtle variations in color and light.
  • Refine character models with more detailed clothing, facial features (if visible), and more natural posing to match the realistic aesthetic.

before / joke_shop_door fixes:

  • Improve brick texture and normal mapping to match the target's depth and roughness.
  • Enhance the lighting to create softer, more volumetric shadows and a warmer glow from the lamp.
  • Add more detail to the door material, including wood grain and subtle imperfections.
  • Refine the sign's material and lighting to appear less flat and more integrated with the environment.
  • Significantly improve character models to achieve a realistic appearance, focusing on form, texture, and animation.

before / street_day fixes:

  • Improve road material to have more micro-details, reflections, and wear.
  • Add atmospheric perspective and volumetric fog to the distant cityscape to match the target's depth.
  • Enhance building materials with more varied textures, specular highlights, and subtle imperfections.
  • Increase the polygon count and texture resolution for the car model, paying attention to reflections and material properties.
  • Implement more realistic lighting with softer shadows, global illumination, and subtle color grading to mimic natural sunlight.

before / street_late fixes:

  • Improve the lighting to match the warm, atmospheric glow of the target image, paying attention to the neon signs and streetlights.
  • Enhance material properties for buildings, road, and car to achieve a more realistic sheen and surface detail, especially reflections.
  • Increase texture resolution and detail on all surfaces, particularly the road and building facades, to mimic the fine grain and imperfections of the target.
  • Develop a more detailed and atmospheric backdrop, including a richer sky gradient and more nuanced city skyline with atmospheric perspective.
  • Significantly improve character models and their integration into the scene, as they are currently very basic and unrealistic.

before / street_night fixes:

  • Improve lighting to match the warm, atmospheric glow of neon signs and streetlights in the target image, with more volumetric effects and softer shadows.
  • Enhance material properties to achieve a more realistic sheen and reflectivity on surfaces like the road, buildings, and car, especially under the artificial lights.
  • Increase texture detail on buildings, road surfaces, and palm trees to add grit, imperfections, and finer details that are present in the target image.
  • Add atmospheric perspective and haze to the distant cityscape and sky to create a sense of depth and realism, similar to the target image.
  • Significantly improve character models and their integration into the scene, as they are currently very basic and detract from realism.

before / studio_door fixes:

  • Improve the lighting to match the dramatic, moody, and volumetric feel of the target image. Focus on soft, warm light sources and atmospheric fog.
  • Enhance material properties for the building facade, stairs, and car to achieve a more realistic PBR (Physically Based Rendering) look, with appropriate reflections and surface imperfections.
  • Increase texture detail on all surfaces, especially the brickwork and stone, to add grit, wear, and finer details that are present in the target.
  • Redesign the backdrop to include atmospheric haze and a more distant, less defined background, similar to the target image's sense of depth and mood.
  • Significantly improve character models and their rendering to match the realistic style and subtle details of the people in the target image.