Table clarity. Readable icons in 3D. Stages for UI. Low distraction backgrounds.
Recipe
Clean table stage for UI: neutral low-contrast backdrop, soft shadowless lighting, top-down-ish camera at 50 mm, 16:9 or 9:16 for mobile.
- Set a flat, cheap render with
render_preset.pypresetstylized_flat. - Light with
light_rig.pypresetovercast(soft, no hard shadows behind cards/icons). - Frame the table with
camera_rig.py:lens_mm50,elevation_deg60,fill0.8,aspect"9:16" for mobile (or "16:9"). - Give the table/props a matte neutral material with
pbr_material.py(roughness0.9, mid-greybase_color) so icons carry the color. - Optional icon pop with
comp_grade.pypresetstylized_bloom.
import runpy
skills = "<skills_dir>" # parent folder of this skill (the plugin's skills/ directory)
target = "SM_Asset" # object to style / dress
r = {}
r["render"] = runpy.run_path(f"{skills}/rendering/scripts/render_preset.py", init_globals={"ARGS": {"preset": "stylized_flat"}})["result"]
r["light"] = runpy.run_path(f"{skills}/lighting/scripts/light_rig.py", init_globals={"ARGS": {"preset": "overcast", "target": target}})["result"]
r["cam"] = runpy.run_path(f"{skills}/camera-cinematography/scripts/camera_rig.py", init_globals={"ARGS": {"name": "CAM_Table", "target": target, "lens_mm": 50, "elevation_deg": 60, "fill": 0.8, "aspect": "9:16"}})["result"]
r["mat"] = runpy.run_path(f"{skills}/materials/scripts/pbr_material.py", init_globals={"ARGS": {"name": "MAT_Table", "base_color": [0.25, 0.27, 0.3], "roughness": 0.9, "objects": [target]}})["result"]
r["grade"] = runpy.run_path(f"{skills}/compositing/scripts/comp_grade.py", init_globals={"ARGS": {"preset": "stylized_bloom"}})["result"]
result = r
| Item | Value |
|---|---|
| Poker-size card | 0.063 x 0.088 m |
| Card thickness | 0.3 mm |
| Table play area | 0.9 x 0.9 m |
| Safe UI margin | 10 % of frame |