SuperAPI AI Directory

lowpoly-style

Design & creation

View repository

Updated 10-31 12:23

About this skill

Low Poly Style Specialist

Readable silhouettes. Large shapes. Minimal polygons. Atmosphere over detail.

When to Use

  • Retro aesthetic games (PS1/PS2 era)
  • Lethal Company / Mouthwashing style projects
  • Mobile/low-spec targets
  • Horror with efficient geometry (the full PS1 horror look: psx-horror-style)
  • Stylized simplicity

Core Rules

  1. Readable silhouettes — Shape reads at distance without detail
  2. Minimal polygons — Every face must earn its place
  3. Large shapes — Primary forms dominate; micro-detail forbidden
  4. Simple materials — Flat or lightly textured; 512px default
  5. Limited texture sizes — 256–512px most assets; 1024 hero only
  6. Strong atmosphere — Lighting and fog carry visual weight

Polygon Guidelines

Asset Triangle Target
Character 500–3,000
Prop 50–500
Environment module 100–800
Tree 200–800
Vehicle 2,000–8,000

See blender-mcp-workflow skill → references/polycount-budgets.md — apply 50–90% reduction.

Modeling Approach

  • No subdivision surface
  • No micro-bevels (0 bevel or single segment max)
  • Flat shading OR Smooth by Angle at 60°+
  • Merge coplanar faces where possible
  • Texture carries detail, not geometry

PS1 Authenticity (Optional)

Effect Technique
Affine texture warp Engine-side; note in export docs
Vertex jitter Slight snap to low grid
Low resolution 320×240 render target reference
No filtering Nearest neighbor textures
Z-fighting aesthetic Intentional minimal offset (use carefully)

PS2 Era

  • Slightly higher poly budgets
  • Basic normal maps allowed
  • Single directional light + ambient
  • 512–1024 textures

Material Approach

  • Vertex colors for variation (preferred)
  • Single texture atlas per scene/kit
  • Minimal roughness variation
  • Emissive for screens/lights
  • No PBR micro-detail

Silhouette Test

Before approving any asset:

  1. Solid flat color material
  2. View at gameplay distance
  3. Silhouette must communicate identity
  4. If unreadable → simplify geometry, not add detail

Lethal Company Influence

  • Industrial sci-fi interiors
  • High contrast lighting
  • Chunky readable props
  • Fog-heavy environments
  • Multiplayer-readable shapes (clear at distance)

Mouthwashing Influence

  • Soft pastel palette option
  • Surreal but simple geometry
  • Strong color blocking
  • Uncanny but low-detail characters

MCP Integration

  1. Create low-poly blockouts via MCP
  2. Enforce face count limits via MCP queries
  3. Assign flat materials via MCP
  4. Validate triangle budgets continuously
  5. Skip subdiv/bevel modifiers entirely

Constraints

MUST DO

  • Enforce strict poly budgets
  • Prioritize silhouette over surface detail
  • Use vertex colors and atlases
  • Test at gameplay camera distance
  • Coordinate atmosphere with lighting skill

MUST NOT DO

  • Write code or snippets for Blender versions before 5.2, or add version fallbacks: this plugin targets 5.2+, and legacy branches teach users APIs that no longer exist
  • Subdivision surfaces
  • High-resolution textures on background assets
  • Micro-bevels or weighted normal stacks
  • Sculpting detail (bake workflow unnecessary)
  • Exceed triangle budgets "just a little"

Scripts

Tested on Blender 5.2 LTS via the official Blender MCP. Run with execute_blender_code (or headless, see the blender-mcp-workflow skill); read the script header for every argument. When the user will paste code into Blender themselves, give them the short runpy call with the absolute path of this installed script and their ARGS. Don't inline or rewrite the script: the tested file is the point.

Script What it does
scripts/ps1_look.py Apply a PS1/PSX-era look: low internal resolution, nearest-neighbour texture filtering, vertex snapping (geometry nodes, per object), flat or Gouraud shading, compositor distance fog from the mist pass, 32px posterized textures for untextured meshes, and Standard view transform.
import runpy
result = runpy.run_path("<skill_dir>/scripts/ps1_look.py", init_globals={"ARGS": {...}})["result"]

ARGS: objects, snap, resolution, flat, fog (bool or RGB fog colour), texture. For a whole scene pass every mesh: {"objects": [all mesh names], "flat": true}; untextured meshes get a PS1 texture.

Reference Guide

Topic Reference Load When
PS1 techniques references/ps1-aesthetic.md Retro authentic look
Asset budgets blender-mcp-workflow skill → references/polycount-budgets.md Budget setting