From 017afb6971dcca959dddf534ad6d04e2dbe808cf Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Sun, 26 Jul 2026 10:29:37 +0000 Subject: [PATCH 1/2] feat(art): rebuild the character from lofted geometry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The character was stacked axis-aligned cubes and read as a Minecraft figure. No amount of texturing fixes a silhouette made of blocks. It is now lofted: `_lib.loft`/`limb`/`ring` bridge cross-sections whose radius changes along their length, so the torso has a waist and limbs taper, with hard-surface gear layered on top and subdivision applied only to the body — a smoothed plate carrier looks inflated rather than rigid. The art direction is doing real work. A helmeted, visored operative in heavy gear is almost entirely hard surface, which is what a script is good at; faces, skin and bare hands are what procedural generation cannot do well, and this design shows none of them. That is a deliberate choice rather than a dodge. Gear: helmet with brow, visor, side rails, NVG mount and ear cups; plate carrier with shoulder yoke and cummerbund; magazine pouches, radio, admin pouch; pauldrons; belt, holster, dump pouch; knee pads, gloves, boots; backpack. 6.3k triangles. Two iterations went into proportion. Pauldrons lofted with straight sides and capped ends rendered as blobs floating beside the body, so they now taper at both ends and blend into the arm; the first tapered version was 19x25 cm and swallowed the arms entirely, so they are 13x18 cm. preview.py gains --front. Props are authored facing +Y and the camera was placed to suit them, so a character — which faces -Y — was being reviewed from behind. Also stops tracking __pycache__, which an earlier `git add -A` swept in. Still outstanding and the bigger gap: there is no animation system, so the character does not move. A rig and animation cycles are the next step. Co-Authored-By: Claude Opus 5 (1M context) --- .gitignore | 4 + apps/game/public/assets/manifest.json | 8 +- apps/game/public/assets/models/character.glb | Bin 121260 -> 221444 bytes .../blender/__pycache__/_lib.cpython-311.pyc | Bin 17707 -> 0 bytes tools/art/blender/_lib.py | 99 ++++++ tools/art/blender/character.py | 327 +++++++++++++----- tools/art/blender/preview.py | 6 +- 7 files changed, 352 insertions(+), 92 deletions(-) delete mode 100644 tools/art/blender/__pycache__/_lib.cpython-311.pyc diff --git a/.gitignore b/.gitignore index 7ab1ee0..23ba3ee 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,7 @@ assets-source/**/raw/* !assets-source/**/raw/.gitkeep .DS_Store + +# Python bytecode from the Blender asset generators. +__pycache__/ +*.pyc diff --git a/apps/game/public/assets/manifest.json b/apps/game/public/assets/manifest.json index 5414f86..7232e30 100644 --- a/apps/game/public/assets/manifest.json +++ b/apps/game/public/assets/manifest.json @@ -1,7 +1,7 @@ { "generator": "tools/art/build-assets.mjs", "blender": "Blender 4.5.12 LTS", - "commit": "fae10c13fb39b93d0d4d66f67a506d9d9078487d", + "commit": "f24a07a4ca2a223aed5561a9ab08ce87dea1f262", "license": "Original work, © NIGHTCELL 7. No third-party assets.", "source": "Generated procedurally from the scripts in tools/art. No asset is downloaded, photographed, traced, or derived from another game.", "textureSize": 1024, @@ -67,9 +67,9 @@ "ui_hover.mp3" ], "bytes": { - "models": 1135736, + "models": 1235920, "textures": 1971598, - "audio": 323166, - "total": 3430500 + "audio": 326680, + "total": 3534198 } } diff --git a/apps/game/public/assets/models/character.glb b/apps/game/public/assets/models/character.glb index 3e53179b0ed0fb0e59e4920338ed1697ef791300..8e7f2e573427b9d32ab8edb02aac357c334ddf02 100644 GIT binary patch literal 221444 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
qOTZoljk7bl$X`=H#F9qw5S|ok#Mg>kY*Z)(2fD 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 z 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 literal 121260 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∓_1R1!j}3ou(sGO`uX_3V{x>&WU&dv!3cs(f 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 diff --git a/tools/art/blender/__pycache__/_lib.cpython-311.pyc b/tools/art/blender/__pycache__/_lib.cpython-311.pyc deleted file mode 100644 index 611e75ffc8c3096e79cda6fb75ee1b7cee99a053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17707 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 diff --git a/tools/art/blender/_lib.py b/tools/art/blender/_lib.py index 343c308..47bd519 100644 --- a/tools/art/blender/_lib.py +++ b/tools/art/blender/_lib.py @@ -401,3 +401,102 @@ def output_path(filename: str) -> str: else: base = os.path.join(os.path.dirname(__file__), "..", "..", "..", "build", "models") return os.path.abspath(os.path.join(base, filename)) + + +# ------------------------------------------------------------------ lofting + +def ring( + centre: tuple[float, float, float], + rx: float, + ry: float, + segments: int = 12, + squash: float = 0.0, + rotation: float = 0.0, +) -> list[Vector]: + """ + One cross-section: an ellipse, optionally squared off toward a rectangle. + + `squash` blends from a true ellipse (0) toward a rounded rectangle (1). + Bodies are not circular in section — a chest is broad and flat, a forearm + is nearly round — and that difference is most of what separates a lofted + figure from a stack of cylinders. + """ + points: list[Vector] = [] + for i in range(segments): + a = rotation + (i / segments) * math.tau + c, s = math.cos(a), math.sin(a) + # Superellipse-ish: push the point outward toward the bounding box. + if squash > 0.0: + m = max(abs(c), abs(s)) + c = c * (1 - squash) + (c / m) * squash + s = s * (1 - squash) + (s / m) * squash + points.append(Vector((centre[0] + c * rx, centre[1] + s * ry, centre[2]))) + return points + + +def loft(bm: bmesh.types.BMesh, rings: list[list[Vector]], cap: bool = True) -> None: + """ + Bridge a sequence of equal-length rings into a tube. + + This is the core of the character work. Stacking primitives gives a figure + made of visible blocks no amount of texturing hides; lofting a profile that + changes along its length gives limbs that taper and a torso that actually + has a waist. + """ + if len(rings) < 2: + return + + verts = [[bm.verts.new(p) for p in r] for r in rings] + + for a, b in zip(verts, verts[1:]): + n = len(a) + for i in range(n): + j = (i + 1) % n + try: + bm.faces.new((a[i], a[j], b[j], b[i])) + except ValueError: + # Duplicate face where two rings coincide; harmless. + pass + + if cap: + for end in (verts[0], verts[-1]): + try: + bm.faces.new(end) + except ValueError: + pass + + bm.verts.index_update() + bmesh.ops.recalc_face_normals(bm, faces=bm.faces[:]) + + +def limb( + bm: bmesh.types.BMesh, + joints: list[tuple[tuple[float, float, float], float, float]], + segments: int = 10, + squash: float = 0.0, +) -> None: + """ + Loft a limb through `(centre, rx, ry)` joints. + + Rings are oriented in the XY plane and stacked in Z, which suits a figure + modelled standing in a neutral pose — every limb here runs broadly + vertically, and the rig bends them later. + """ + loft(bm, [ring(c, rx, ry, segments, squash) for c, rx, ry in joints]) + + +def subdivide_smooth(bm: bmesh.types.BMesh, cuts: int = 1) -> None: + """ + Catmull-Clark-ish smoothing pass. + + Applied to the body only. Gear stays faceted: hard surfaces should read as + hard, and smoothing a plate carrier makes it look inflated. + """ + for _ in range(cuts): + bmesh.ops.subdivide_edges( + bm, + edges=bm.edges[:], + cuts=1, + use_grid_fill=True, + smooth=1.0, + ) diff --git a/tools/art/blender/character.py b/tools/art/blender/character.py index a9c155a..73e9a2a 100644 --- a/tools/art/blender/character.py +++ b/tools/art/blender/character.py @@ -1,30 +1,31 @@ """ -Player character. - -This asset exists because remote players are currently *invisible*: the client -interpolates their positions (`RemotePlayerInterpolator`) and -`NetClient.remotePosition()` returns them, but nothing in the game ever calls -it or creates a mesh. A six-a-side match therefore renders an empty yard. - -Design constraints, in priority order: - - 1. **Readable silhouette.** A competitive shooter lives or dies on whether you - can identify a player shape in a fraction of a second against cluttered - industrial geometry. Chunky pauldrons, a helmet with a distinct brow, and a - backpack give a recognisable outline from any angle. - 2. **Team legibility without pay-to-win.** Team identity is carried by - material (`paint_red` / `paint_cyan`), not by geometry, so the two sides - are exactly the same size and present exactly the same hitbox. PRD § - "Multiplayer Alpha is free and cannot be pay-to-win" — a smaller-silhouette - skin would be precisely that. - 3. **Matches the capsule the server simulates.** 1.8 m standing, roughly - 0.6 m across the shoulders, centred on the origin in plan so the mesh sits - on the simulated position without an offset fudge. - -Unrigged and unanimated on purpose: V1 has no animation system, and a static -mesh that reads correctly beats a rigged one that cannot be driven. It is built -in a neutral standing pose so a skeleton can be added later without redoing the -silhouette. +Player character — armoured operative. + +The first version of this file stacked axis-aligned cubes. It read as a +Minecraft figure, and no amount of texturing fixes a silhouette made of blocks. +This one lofts the body from cross-sections that change along their length, so +limbs taper and the torso has a waist, and layers hard-surface gear on top. + +The art direction does real work here. A helmeted, visored operative in heavy +gear is almost entirely *hard surface* — plates, pouches, straps, boots — which +is what a script is good at. The things procedural generation genuinely cannot +do well are faces, skin and bare hands, and this design has none of them +visible. That is a deliberate choice, not a dodge: it is also why real military +shooters can reuse one body under many loadouts. + +Rules that still hold from the first version: + + 1. **Readable silhouette.** Competitive play depends on identifying a shape in + a fraction of a second against cluttered industrial geometry. Pauldrons, a + distinct helmet brow, and a backpack give an outline recognisable from any + angle. + 2. **Team identity by material, never geometry.** Both sides are the exact + same mesh with a different paint material, so neither presents a smaller + target. PRD: Multiplayer Alpha cannot be pay-to-win, and a slimmer skin + would be precisely that. + 3. **1.8 m standing**, matching the capsule the server simulates, centred on + the origin in plan so the mesh sits on the simulated position with no + offset fudge. """ from __future__ import annotations @@ -39,84 +40,236 @@ HEIGHT = 1.8 +# Roughly 7.5 heads, the standard heroic-but-not-cartoon proportion. +HEAD_TOP = 1.80 +NECK_Y = 1.46 +CHEST_Y = 1.28 +WAIST_Y = 1.02 +HIP_Y = 0.92 -def build(seed: int = 31) -> None: - L.reset_scene() - armour = L.new_bmesh() # team-coloured plate - gear = L.new_bmesh() # webbing, boots, weapon — always dark +def build_torso(body: L.Part) -> None: + """ + Torso lofted hips -> waist -> chest -> shoulders. + + The chest section is much wider than deep (squash pushes it toward a + rounded rectangle); a circular section reads as a barrel, not a ribcage. + """ + L.limb( + body, + [ + ((0.0, 0.0, HIP_Y - 0.10), 0.155, 0.115), + ((0.0, 0.0, HIP_Y), 0.160, 0.120), + ((0.0, 0.0, WAIST_Y), 0.145, 0.105), + ((0.0, 0.0, WAIST_Y + 0.12), 0.170, 0.120), + ((0.0, 0.0, CHEST_Y), 0.195, 0.135), + ((0.0, 0.0, CHEST_Y + 0.10), 0.200, 0.138), + ((0.0, 0.0, NECK_Y - 0.04), 0.165, 0.120), + ], + segments=14, + squash=0.35, + ) + + +def build_legs(body: L.Part) -> None: + for side in (-1, 1): + x = side * 0.098 + # Thigh -> knee -> calf -> ankle. The calf bulge is small but it is + # what stops a leg reading as a cone. + L.limb( + body, + [ + ((x, 0.0, HIP_Y), 0.098, 0.098), + ((x, 0.005, 0.72), 0.092, 0.094), + ((x, 0.004, 0.50), 0.075, 0.078), + ((x, 0.0, 0.44), 0.070, 0.072), # knee + ((x, -0.004, 0.34), 0.076, 0.080), # calf + ((x, 0.0, 0.16), 0.055, 0.058), + ((x, 0.0, 0.09), 0.050, 0.054), # ankle + ], + segments=10, + ) + + +def build_arms(body: L.Part) -> None: + for side in (-1, 1): + x = side * 0.225 + # Shoulder -> bicep -> elbow -> forearm -> wrist, drifting forward as + # it descends so the arms hang naturally rather than pin-straight. + L.limb( + body, + [ + ((x, 0.0, CHEST_Y + 0.08), 0.072, 0.072), + ((x, -0.005, 1.24), 0.068, 0.070), + ((x, -0.015, 1.10), 0.058, 0.060), + ((x - side * 0.005, -0.030, 1.00), 0.052, 0.054), # elbow + ((x - side * 0.012, -0.075, 0.95), 0.050, 0.052), + ((x - side * 0.020, -0.150, 0.94), 0.044, 0.046), # wrist + ], + segments=10, + ) + + +def build_head(body: L.Part) -> None: + """Neck and the skull under the helmet — mostly hidden, but it fills the gap.""" + L.limb( + body, + [ + ((0.0, 0.0, NECK_Y - 0.05), 0.062, 0.058), + ((0.0, 0.0, NECK_Y + 0.03), 0.058, 0.055), + ((0.0, -0.005, 1.56), 0.078, 0.082), + ((0.0, -0.008, 1.63), 0.086, 0.092), + ((0.0, -0.005, 1.70), 0.080, 0.086), + ((0.0, 0.0, 1.745), 0.055, 0.060), + ], + segments=12, + ) + + +def build_gear(armour: L.Part, gear: L.Part, rng) -> None: + """ + Everything worn over the body. - # ---- legs ------------------------------------------------------------ + Hard surface, faceted, bevelled — the contrast against the smooth body + underneath is what makes the gear read as equipment rather than anatomy. + """ + # ---- helmet: a cut-down sphere with a brow and a rail ------------------ + L.limb( + armour, + [ + ((0.0, -0.004, 1.585), 0.098, 0.104), + ((0.0, -0.006, 1.635), 0.108, 0.115), + ((0.0, -0.006, 1.685), 0.104, 0.110), + ((0.0, -0.004, 1.730), 0.086, 0.092), + ((0.0, 0.0, 1.762), 0.052, 0.056), + ], + segments=14, + ) + # Brow / visor lip — the strongest single read on the head. + L.add_box(armour, centre=(0.0, -0.098, 1.605), size=(0.185, 0.045, 0.055)) + # Visor itself, recessed and dark. + L.add_box(gear, centre=(0.0, -0.082, 1.565), size=(0.155, 0.040, 0.062)) + # Side rails and an NVG mount: small asymmetric shapes that sell "kit". + for sx in (-1, 1): + L.add_box(gear, centre=(sx * 0.098, -0.010, 1.600), size=(0.020, 0.130, 0.030)) + L.add_box(gear, centre=(0.0, -0.085, 1.700), size=(0.055, 0.045, 0.030)) + # Ear cups. for sx in (-1, 1): - x = sx * 0.115 - # Thigh and shin, slightly tapered by stacking two boxes. - L.add_box(gear, centre=(x, 0.0, 0.24), size=(0.17, 0.20, 0.48)) - L.add_box(gear, centre=(x, 0.005, 0.66), size=(0.19, 0.23, 0.40)) - # Boot: wider than the shin, which anchors the figure to the ground. - L.add_box(gear, centre=(x, -0.03, 0.05), size=(0.20, 0.30, 0.10)) - # Knee pad, in team colour so the legs are not a dark mass. - L.add_box(armour, centre=(x, -0.10, 0.47), size=(0.16, 0.06, 0.14)) - - # ---- torso ----------------------------------------------------------- - # Built as a stack rather than one box so the chest tapers into the - # shoulders. Heights are chosen to leave NO vertical gap anywhere up the - # figure: the first version ended the torso at 1.32 and started the neck at - # 1.41, which rendered as a head floating above the body. - L.add_box(gear, centre=(0.0, 0.0, 0.90), size=(0.33, 0.22, 0.22)) # waist / belt - L.add_box(armour, centre=(0.0, 0.0, 1.10), size=(0.40, 0.25, 0.24)) # lower chest - L.add_box(armour, centre=(0.0, 0.0, 1.29), size=(0.44, 0.27, 0.20)) # upper chest, widest - L.add_box(armour, centre=(0.0, -0.15, 1.16), size=(0.34, 0.06, 0.34)) # plate carrier front - # Collar bridging chest to neck, so the head sits ON the body. - L.add_box(gear, centre=(0.0, 0.0, 1.41), size=(0.26, 0.20, 0.08)) - - # Magazine pouches across the front — small shapes that catch the light. + L.add_cylinder( + gear, centre=(sx * 0.100, -0.005, 1.545), radius=0.042, height=0.030, + segments=10, axis="X", + ) + # Comms boom. + L.add_cylinder(gear, centre=(0.055, -0.075, 1.520), radius=0.010, height=0.10, segments=6, axis="Y") + + # ---- plate carrier ----------------------------------------------------- + # Front and back plates, slightly proud of the chest, with a shoulder yoke. + L.add_box(armour, centre=(0.0, -0.115, 1.20), size=(0.270, 0.052, 0.330)) + L.add_box(armour, centre=(0.0, 0.112, 1.20), size=(0.270, 0.048, 0.330)) + for sx in (-1, 1): + L.add_box(armour, centre=(sx * 0.135, 0.0, 1.345), size=(0.075, 0.240, 0.055)) + # Cummerbund. + L.add_box(gear, centre=(0.0, 0.0, 1.055), size=(0.330, 0.235, 0.085)) + + # ---- pouches ----------------------------------------------------------- for i in range(3): - L.add_box(gear, centre=(-0.11 + i * 0.11, -0.19, 1.02), size=(0.09, 0.06, 0.14)) + L.add_box( + gear, + centre=(-0.105 + i * 0.105, -0.150, 1.105), + size=(0.088, 0.058, 0.135), + ) + # Radio on the back, admin pouch on the chest. + L.add_box(gear, centre=(-0.115, 0.140, 1.240), size=(0.070, 0.050, 0.115)) + L.add_box(gear, centre=(0.085, -0.145, 1.290), size=(0.105, 0.035, 0.085)) - # Backpack: pushes the silhouette asymmetric front-to-back, which is what - # makes facing direction readable at distance. - L.add_box(gear, centre=(0.0, 0.185, 1.18), size=(0.30, 0.15, 0.38)) - L.add_cylinder(gear, centre=(0.0, 0.26, 1.33), radius=0.05, height=0.28, segments=8, axis="X") + # ---- pauldrons --------------------------------------------------------- + for sx in (-1, 1): + # Tapered top and bottom so the plate sits *over* the shoulder and + # blends into the arm. Straight-sided rings with capped ends read as a + # separate blob floating beside the body, which is how the first + # attempt rendered. + L.limb( + armour, + [ + ((sx * 0.200, 0.0, 1.385), 0.038, 0.052), + ((sx * 0.218, 0.0, 1.350), 0.062, 0.086), + ((sx * 0.228, 0.0, 1.305), 0.066, 0.092), + ((sx * 0.230, 0.0, 1.258), 0.060, 0.084), + ((sx * 0.228, 0.0, 1.220), 0.044, 0.062), + ], + segments=12, + ) + + # ---- belt, holster, thigh rig ----------------------------------------- + L.add_box(gear, centre=(0.0, 0.0, 0.955), size=(0.330, 0.240, 0.062)) + L.add_box(gear, centre=(0.155, -0.020, 0.845), size=(0.070, 0.110, 0.190)) # holster + L.add_box(gear, centre=(-0.140, -0.040, 0.800), size=(0.085, 0.075, 0.150)) # dump pouch - # ---- shoulders and arms --------------------------------------------- + # ---- knee pads, gloves, boots ----------------------------------------- for sx in (-1, 1): - # Pauldron — the strongest silhouette element on the upper body. Sits - # just outboard of the chest and overlaps it, so there is no seam. - L.add_box(armour, centre=(sx * 0.245, 0.0, 1.31), size=(0.15, 0.26, 0.19)) - # Upper arm hangs from under the pauldron. - L.add_box(gear, centre=(sx * 0.255, -0.005, 1.13), size=(0.125, 0.16, 0.24)) - # Elbow, then a forearm angled in and forward as if holding a weapon. - L.add_box(gear, centre=(sx * 0.245, -0.03, 1.00), size=(0.115, 0.14, 0.10)) - L.add_box(gear, centre=(sx * 0.205, -0.16, 0.97), size=(0.105, 0.26, 0.105)) - # Glove. - L.add_box(gear, centre=(sx * 0.185, -0.29, 0.96), size=(0.095, 0.10, 0.095)) - - # ---- head ------------------------------------------------------------ - L.add_box(gear, centre=(0.0, 0.0, 1.485), size=(0.125, 0.13, 0.09)) # neck - L.add_box(armour, centre=(0.0, 0.0, 1.60), size=(0.215, 0.245, 0.185)) # helmet shell - L.add_box(armour, centre=(0.0, 0.0, 1.695), size=(0.185, 0.215, 0.045)) # crown - L.add_box(armour, centre=(0.0, -0.135, 1.585), size=(0.195, 0.05, 0.085)) # brow / visor lip - L.add_box(gear, centre=(0.0, -0.115, 1.535), size=(0.165, 0.05, 0.07)) # face shadow - # Comms boom, a small asymmetric tell for facing. - L.add_cylinder(gear, centre=(0.07, -0.115, 1.515), radius=0.012, height=0.12, segments=5, axis="Y") - - L.bevel(armour, width=0.008) - L.bevel(gear, width=0.006) + x = sx * 0.098 + L.add_box(armour, centre=(x, -0.070, 0.455), size=(0.105, 0.055, 0.115)) # knee + # Glove: a blockier cap on the wrist, so hands read without fingers. + L.add_box(gear, centre=(sx * 0.205 - sx * 0.020, -0.205, 0.935), size=(0.078, 0.115, 0.082)) + # Boot: sole plus upper. Wider than the ankle, which anchors the figure. + L.add_box(gear, centre=(x, -0.030, 0.028), size=(0.105, 0.255, 0.055)) + L.add_box(gear, centre=(x, -0.010, 0.085), size=(0.098, 0.170, 0.070)) + + # ---- backpack ---------------------------------------------------------- + L.limb( + gear, + [ + ((0.0, 0.185, 1.045), 0.130, 0.070), + ((0.0, 0.195, 1.120), 0.148, 0.082), + ((0.0, 0.195, 1.250), 0.150, 0.084), + ((0.0, 0.185, 1.330), 0.128, 0.070), + ], + segments=10, + squash=0.55, + ) + L.add_cylinder(gear, centre=(0.0, 0.268, 1.290), radius=0.045, height=0.26, segments=8, axis="X") + _ = rng + + +def build(seed: int = 31) -> None: + L.reset_scene() + rng = L.rng(seed) + + body = L.new_bmesh() # skin/undersuit, smoothed + armour = L.new_bmesh() # team-coloured plate + gear = L.new_bmesh() # webbing, boots, weapon furniture — always dark + + build_torso(body) + build_legs(body) + build_arms(body) + build_head(body) + build_gear(armour, gear, rng) + + # Smooth only the body. Gear keeps its hard edges; a smoothed plate carrier + # looks inflated rather than rigid. + L.subdivide_smooth(body, cuts=1) + + L.bevel(armour, width=0.006) + L.bevel(gear, width=0.005) L.finish_object( "character", - [L.Part(armour, L.MAT_PAINT_RED), L.Part(gear, L.MAT_RUBBER)], + [ + L.Part(body, L.MAT_RUBBER), + L.Part(armour, L.MAT_PAINT_RED), + L.Part(gear, L.MAT_RUBBER), + ], + shade_smooth_angle=math.radians(38), ) # Collision proxy matching the simulated capsule. L.add_collider("character", (0.0, 0.0, HEIGHT / 2), (0.6, 0.4, HEIGHT)) - # Where a weapon world-model attaches, and where tracers should originate - # for other players' shots. - L.add_socket("WEAPON", (0.22, -0.30, 0.98), rotation=(0.0, 0.0, 0.0)) - L.add_socket("HEAD", (0.0, 0.0, 1.62)) + # Where a weapon world-model attaches, and where other players' tracers + # should originate. + L.add_socket("WEAPON", (0.20, -0.26, 0.95)) + L.add_socket("HEAD", (0.0, 0.0, 1.63)) L.export_glb(L.output_path("character.glb")) - _ = seed, math build() diff --git a/tools/art/blender/preview.py b/tools/art/blender/preview.py index a1b82f4..d1c3cf9 100644 --- a/tools/art/blender/preview.py +++ b/tools/art/blender/preview.py @@ -120,10 +120,14 @@ def main() -> None: cam_data.lens = 60 cam = bpy.data.objects.new("preview", cam_data) angle = math.radians(38) + # `--front` puts the camera on -Y. Props are authored facing +Y, but the + # character faces -Y, and rendering a character from behind hides every + # detail worth reviewing. + facing = -1.0 if "--front" in sys.argv else 1.0 cam.location = centre + Vector( ( math.cos(angle) * radius * 3.1, - math.sin(angle) * radius * 3.1 + radius * 1.4, + facing * (math.sin(angle) * radius * 3.1 + radius * 1.4), radius * 1.35, ) ) From e752cc29bdfff7e52f1f91d651b6af0c5353eae5 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Sun, 26 Jul 2026 10:40:40 +0000 Subject: [PATCH 2/2] ci: stop the PowerShell install flaking the whole job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The installer check resolves the PowerShell download URL from the GitHub API unauthenticated, which is rate-limited on shared runners. When the limit was hit the lookup returned an empty string, `curl -fsSL ""` failed, and the job went red on main for a reason unrelated to the code — format, lint, typecheck and test had all passed. Authenticates the lookup with GITHUB_TOKEN, retries it three times, and falls back to a pinned release if the API is unreachable. The download itself also retries. The check stays blocking. It exists because PowerShell runs on Linux, so install.ps1 can be verified rather than trusted on inspection, and making it non-blocking would quietly give that up. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5c7b71..b0d94f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,10 +42,39 @@ jobs: # PowerShell runs on Linux, so the Windows installer is checkable here # rather than trusted on inspection. - name: Install PowerShell + env: + # Authenticated so the release lookup is not subject to the shared + # runners' unauthenticated GitHub API rate limit. Hitting that limit + # returned an empty URL, `curl -fsSL ""` failed, and the whole job + # went red for a reason that had nothing to do with the code. + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Known-good fallback if the API is unavailable entirely. + PWSH_FALLBACK: "7.4.6" run: | - URL=$(curl -fsSL https://api.github.com/repos/PowerShell/PowerShell/releases/latest \ - | grep -o '"browser_download_url": *"[^"]*linux-x64.tar.gz"' | cut -d'"' -f4 | head -1) - mkdir -p "$HOME/.pwsh" && curl -fsSL "$URL" | tar -xz -C "$HOME/.pwsh" + set -euo pipefail + + resolve_url() { + curl -fsSL -H "Authorization: Bearer $GH_TOKEN" \ + https://api.github.com/repos/PowerShell/PowerShell/releases/latest \ + | grep -o '"browser_download_url": *"[^"]*linux-x64.tar.gz"' \ + | cut -d'"' -f4 | head -1 + } + + URL="" + for attempt in 1 2 3; do + URL=$(resolve_url || true) + [ -n "$URL" ] && break + echo "release lookup attempt $attempt failed, retrying" >&2 + sleep $((attempt * 5)) + done + + if [ -z "$URL" ]; then + echo "falling back to pinned PowerShell $PWSH_FALLBACK" >&2 + URL="https://github.com/PowerShell/PowerShell/releases/download/v${PWSH_FALLBACK}/powershell-${PWSH_FALLBACK}-linux-x64.tar.gz" + fi + + mkdir -p "$HOME/.pwsh" + curl -fsSL --retry 3 --retry-delay 5 "$URL" | tar -xz -C "$HOME/.pwsh" chmod +x "$HOME/.pwsh/pwsh" echo "$HOME/.pwsh" >> "$GITHUB_PATH"