Cells reduced from 16x16 to 10x10 pixels. Same window size now shows more of the world — finer detail, more cells visible. Adaptive viewport recalculates grid_w/grid_h from new cell size. 109 tests, 0 failures
15 KiB
Graph Report - . (2026-06-21)
Corpus Check
- Corpus is ~33,231 words - fits in a single context window. You may not need a graph.
Summary
- 690 nodes · 1218 edges · 47 communities (44 shown, 3 thin omitted)
- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 32 edges (avg confidence: 0.86)
- Token cost: 0 input · 0 output
Community Hubs (Navigation)
- _COMMUNITY_Vulkan Core Setup
- _COMMUNITY_Terminal Renderer & Game Loop
- _COMMUNITY_Graphics Vulkan Renderer
- _COMMUNITY_AI Pipe Protocol
- _COMMUNITY_AI Game Session
- _COMMUNITY_CLI Entry & GPU Mode
- _COMMUNITY_AI State Export
- _COMMUNITY_Terminal Input Handler
- _COMMUNITY_Entity System
- _COMMUNITY_Cellular Automaton
- _COMMUNITY_Replay System
- _COMMUNITY_Edge Case Tests
- _COMMUNITY_AI Actions & Grid
- _COMMUNITY_Material Physics Tests
- _COMMUNITY_Player Controller
- _COMMUNITY_Cell & Material Types
- _COMMUNITY_Material Interaction Tests
- _COMMUNITY_Player Control Tests
- _COMMUNITY_AI Agent Roadmap
- _COMMUNITY_Verlet Physics Solver
- _COMMUNITY_Render & Phase Roadmap
- _COMMUNITY_Collision Robustness Tests
- _COMMUNITY_Render Mode & UI Roadmap
- _COMMUNITY_Window Input (winit)
- _COMMUNITY_Determinism Tests
- _COMMUNITY_Ragdoll Death Tests
- _COMMUNITY_Grid Collision Resolver
- _COMMUNITY_Material Registry
- _COMMUNITY_Entity Types & Game Loop
- _COMMUNITY_Adaptive Viewport
- _COMMUNITY_Headless Dump & Combat Plan
- _COMMUNITY_Entity Damage Tests
- _COMMUNITY_Entity Movement Tests
- _COMMUNITY_Lava Physics Tests
- _COMMUNITY_Sand Physics Tests
- _COMMUNITY_Acid Physics Tests
- _COMMUNITY_Water Physics Tests
- _COMMUNITY_Ragdoll Physics Plan
- _COMMUNITY_Per-Cell Color Plan
- _COMMUNITY_Game Run & Input
- _COMMUNITY_Slope Stepping
- _COMMUNITY_Renderer Trait
God Nodes (most connected - your core abstractions)
VulkanRenderer- 37 edgesGraphicsRenderer- 31 edgesGameSession- 26 edgesGame- 24 edgesEntity- 20 edgesCellularAutomaton- 19 edgesInputHandler- 18 edgesResult- 17 edgesString- 17 edgessetup()- 17 edges
Surprising Connections (you probably didn't know these)
pipe render mode--semantically_similar_to-->AI pipe protocol (JSON stdin/stdout)[INFERRED] [semantically similar] AGENTS.md → PLAN.mdGame::fixed_update()--semantically_similar_to-->Fixed 60Hz timestep[INFERRED] [semantically similar] AGENTS.md → PLAN.mdPlayer--semantically_similar_to-->Player entity (headless dump)[INFERRED] [semantically similar] AGENTS.md → headless_dump.txtrigid entity type--semantically_similar_to-->Rigid entities (AABB + slope stepping)[INFERRED] [semantically similar] AGENTS.md → PLAN.mdragdoll entity type--semantically_similar_to-->Ragdoll corpses (Verlet)[INFERRED] [semantically similar] AGENTS.md → PLAN.md
Import Cycles
- 1-file cycle:
src/ai/action.rs -> src/ai/action.rs - 1-file cycle:
src/world/grid.rs -> src/world/grid.rs - 1-file cycle:
src/ai/protocol.rs -> src/ai/protocol.rs - 1-file cycle:
src/ai/replay.rs -> src/ai/replay.rs - 1-file cycle:
src/ai/scenario.rs -> src/ai/scenario.rs - 1-file cycle:
src/ai/session.rs -> src/ai/session.rs - 1-file cycle:
src/ai/state.rs -> src/ai/state.rs - 1-file cycle:
src/game.rs -> src/game.rs - 1-file cycle:
src/entity/player.rs -> src/entity/player.rs - 1-file cycle:
src/render/terminal.rs -> src/render/terminal.rs - 1-file cycle:
src/input.rs -> src/input.rs - 1-file cycle:
src/main.rs -> src/main.rs - 1-file cycle:
src/physics/collision.rs -> src/physics/collision.rs - 1-file cycle:
src/physics/verlet.rs -> src/physics/verlet.rs - 1-file cycle:
src/render/graphics.rs -> src/render/graphics.rs - 1-file cycle:
src/render/vulkan.rs -> src/render/vulkan.rs - 1-file cycle:
src/render/window_input.rs -> src/render/window_input.rs - 1-file cycle:
src/world/cellular.rs -> src/world/cellular.rs - 1-file cycle:
src/world/material.rs -> src/world/material.rs - 1-file cycle:
tests/collision_robust.rs -> tests/collision_robust.rs
Hyperedges (group relationships)
- Game loop fixed_update pipeline: CA step → rigid update → ragdoll update → damage — [INFERRED]
- Three render modes read the same Grid + EntityManager (single source of truth) — [INFERRED]
- GpuRenderer trait unifies VulkanRenderer + GraphicsRenderer behind run_gpu_mode() with identical event loops — [INFERRED]
Communities (47 total, 3 thin omitted)
Community 0 - "Vulkan Core Setup"
Cohesion: 0.10 Nodes (61): BufferUsageFlags, c_char, DescriptorPool, DescriptorSet, DescriptorSetLayout, Format, Image, MemoryPropertyFlags (+53 more)
Community 1 - "Terminal Renderer & Game Loop"
Cohesion: 0.07 Nodes (19): CellularAutomaton, Duration, InputHandler, Player, R, TerminalRenderer, Renderer, Game (+11 more)
Community 2 - "Graphics Vulkan Renderer"
Cohesion: 0.07 Nodes (31): ColorInstance, GraphicsRenderer, PushConstants, Arc, Buffer, CommandBuffer, CommandPool, Device (+23 more)
Community 3 - "AI Pipe Protocol"
Cohesion: 0.12 Nodes (31): Command, handle_command(), Response, run_pipe_protocol(), Assertion, AssertionResult, check_assertion(), format_results() (+23 more)
Community 4 - "AI Game Session"
Cohesion: 0.09 Nodes (13): GameSession, Default, ReplayRecorder, AiAction, CellInfo, EntityInfo, Game, GameState (+5 more)
Community 5 - "CLI Entry & GPU Mode"
Cohesion: 0.15 Nodes (20): Cli, dump_view(), GpuRenderer, main(), player_info(), Arc, EntityManager, Game (+12 more)
Community 6 - "AI State Export"
Cohesion: 0.13 Nodes (23): build_game_state(), CellInfo, entity_info(), entity_kind_name(), EntityInfo, GameState, material_from_name(), parse_entity_kind() (+15 more)
Community 7 - "Terminal Input Handler"
Cohesion: 0.13 Nodes (15): Event, JoinHandle, Receiver, Action, HeldKey, HeldState, InputHandler, MaterialBrush (+7 more)
Community 8 - "Entity System"
Cohesion: 0.15 Nodes (9): Constraint, Entity, EntityKind, EntityManager, EntityId, Option, Self, SubBody (+1 more)
Community 9 - "Cellular Automaton"
Cohesion: 0.29 Nodes (4): Grid, MaterialId, Self, CellularAutomaton
Community 10 - "Replay System"
Cohesion: 0.13 Nodes (11): ReplayEvent, ReplayPlayer, ReplayRecorder, ReplayRecording, ReplayEvent, AiAction, GameSession, Result (+3 more)
Community 11 - "Edge Case Tests"
Cohesion: 0.16 Nodes (17): center_camera_on_player(), clear_region_removes_all_materials(), entity_at_right_boundary(), entity_at_world_boundary_stays_in_bounds(), fill_rect_creates_correct_material_count(), find_material_locates_existing(), find_material_returns_none_for_absent(), goblin_has_correct_max_health() (+9 more)
Community 12 - "AI Actions & Grid"
Cohesion: 0.18 Nodes (7): AiAction, Cell, Game, MaterialId, Self, Vec, Grid
Community 13 - "Material Physics Tests"
Cohesion: 0.22 Nodes (17): bone_is_static(), dirt_is_solid(), fire_dies_over_time(), fire_ignites_flesh(), fire_ignites_grass(), fire_ignites_wood(), grass_is_solid(), lava_initial_temp_is_high() (+9 more)
Community 14 - "Player Controller"
Cohesion: 0.21 Nodes (6): Player, Entity, EntityId, EntityManager, Option, Self
Community 15 - "Cell & Material Types"
Cohesion: 0.17 Nodes (4): Self, Cell, MaterialId, rand_u8()
Community 16 - "Material Interaction Tests"
Cohesion: 0.26 Nodes (14): acid_dissolves_dirt(), acid_dissolves_grass(), acid_does_not_dissolve_empty(), fire_does_not_ignite_stone(), fire_does_not_ignite_water(), fire_spreads_through_wood_line(), lava_and_water_produce_both_steam_and_stone(), lava_cools_to_stone_eventually() (+6 more)
Community 17 - "Player Control Tests"
Cohesion: 0.26 Nodes (14): continuous_movement_does_not_fall_through_floor(), jump_goes_up_then_falls_back(), jump_while_airborne_does_nothing(), move_left_changes_x_position(), move_left_then_right_cancels(), move_right_changes_x_position(), player_health_stays_full_without_damage(), player_not_on_ground_while_jumping() (+6 more)
Community 18 - "AI Agent Roadmap"
Cohesion: 0.18 Nodes (14): AiAction, GameSession, pipe render mode, AI pipe protocol (JSON stdin/stdout), Seeded RNG determinism, LLM agent (Ollama/Llama/Qwen), Phase 7: AI Agent Integration, Phase 8: Web Arena & Training Pipeline (+6 more)
Community 19 - "Verlet Physics Solver"
Cohesion: 0.22 Nodes (5): Constraint, SubBody, VerletSolver, MaterialId, Self
Community 20 - "Render & Phase Roadmap"
Cohesion: 0.15 Nodes (11): Chunk system (64x64), Cross-platform support (Win/Linux/macOS), Multi-layer world architecture, Phase 2: World & Exploration, Phase 3: RPG Layer, Phase 4: Render Modes, Phase 4b: Graphics layers (lighting/particles/textures), Phase 5: Content & Polish (+3 more)
Community 21 - "Collision Robustness Tests"
Cohesion: 0.27 Nodes (10): entity_collision_with_dirt_wall(), player_blocked_by_ceiling(), player_blocked_by_left_wall(), player_blocked_by_right_wall(), player_blocked_by_two_walls_both_sides(), player_does_not_stick_to_wall(), player_slides_along_wall(), player_squeezes_through_gap() (+2 more)
Community 22 - "Render Mode & UI Roadmap"
Cohesion: 0.22 Nodes (11): EntityManager, Grid (250x250) source of truth, ascii render mode, graphics render mode, terminal render mode, ASCII renderer (Vulkan glyph atlas), Graphics renderer (Vulkan colored cells), Phase 1.5: UI Layer (+3 more)
Community 23 - "Window Input (winit)"
Cohesion: 0.20 Nodes (7): ElementState, HashSet, PhysicalKey, WindowInput, KeyCode, Option, Self
Community 24 - "Determinism Tests"
Cohesion: 0.22 Nodes (3): determinism_with_spawn_and_damage(), GameSession, setup()
Community 25 - "Ragdoll Death Tests"
Cohesion: 0.38 Nodes (9): corpse_exists_in_world(), damage_reduces_health_progressively(), death_transitions_rigid_to_ragdoll(), player_death_becomes_corpse(), ragdoll_bodies_stay_near_each_other(), ragdoll_falls_after_death(), GameSession, setup() (+1 more)
Community 26 - "Grid Collision Resolver"
Cohesion: 0.46 Nodes (6): apply_liquid_drag(), CollisionResult, resolve_grid_collision(), Grid, Self, SubBody
Community 27 - "Material Registry"
Cohesion: 0.43 Nodes (4): MaterialId, Self, Material, MaterialRegistry
Community 28 - "Entity Types & Game Loop"
Cohesion: 0.29 Nodes (7): cellular entity type, CellularAutomaton, Game::fixed_update(), rigid entity type, Fixed 60Hz timestep, 14 CA Materials, Rigid entities (AABB + slope stepping)
Community 29 - "Adaptive Viewport"
Cohesion: 0.33 Nodes (7): check_resize(), GpuRenderer trait, GraphicsRenderer, run_gpu_mode(), VulkanRenderer, WindowInput, Adaptive viewport
Community 30 - "Headless Dump & Combat Plan"
Cohesion: 0.33 Nodes (6): Player, vector movement convention, Goblin entity (headless dump), Grid ASCII rendering (headless dump), Player entity (headless dump), Phase 1: Combat & Interaction
Community 31 - "Entity Damage Tests"
Cohesion: 0.52 Nodes (6): entity_blocked_by_stone(), entity_dies_becomes_corpse(), entity_on_fire_takes_damage_over_time(), entity_takes_lava_damage(), GameSession, setup_empty()
Community 32 - "Entity Movement Tests"
Cohesion: 0.48 Nodes (5): player_blocked_by_stone_wall(), player_can_move_right(), player_survives_fall(), GameSession, setup_empty()
Community 33 - "Lava Physics Tests"
Cohesion: 0.52 Nodes (6): lava_flows_down(), lava_ignites_grass(), lava_ignites_wood(), lava_plus_water_makes_steam(), GameSession, setup_empty()
Community 34 - "Sand Physics Tests"
Cohesion: 0.52 Nodes (6): GameSession, sand_displaces_water(), sand_does_not_fall_through_stone(), sand_falls_down(), sand_piles_on_stone(), setup_empty()
Community 35 - "Acid Physics Tests"
Cohesion: 0.60 Nodes (5): acid_dissolves_wood(), acid_does_not_dissolve_stone(), acid_flows_down(), GameSession, setup_empty()
Community 36 - "Water Physics Tests"
Cohesion: 0.60 Nodes (5): GameSession, setup_empty(), water_does_not_pass_through_stone_wall(), water_flows_down(), water_spreads_sideways()
Community 37 - "Ragdoll Physics Plan"
Cohesion: 0.50 Nodes (5): Constraint, ragdoll entity type, SubBody, VerletSolver, Ragdoll corpses (Verlet)
Community 39 - "Per-Cell Color Plan"
Cohesion: 0.67 Nodes (4): Cell struct, inline cell colors convention, MaterialRegistry, Per-cell color (reality layer)
Knowledge Gaps
- 106 isolated node(s):
String,CellInfo,Vec,EntityInfo,ScenarioResult(+101 more) These have ≤1 connection - possible missing edges or undocumented components. - 3 thin communities (<3 nodes) omitted from report — run
graphify queryto explore isolated nodes.
Suggested Questions
Questions this graph is uniquely positioned to answer:
- Why does
CellconnectAI Actions & GridtoCellular Automaton? High betweenness centrality (0.011) - this node is a cross-community bridge. - Why does
GameSessionconnectAI Game SessiontoAI State Export? High betweenness centrality (0.011) - this node is a cross-community bridge. - What connects
String,CellInfo,Vecto the rest of the system? 108 weakly-connected nodes found - possible documentation gaps or missing edges. - Should
Vulkan Core Setupbe split into smaller, more focused modules? Cohesion score 0.09525899912203688 - nodes in this community are weakly interconnected. - Should
Terminal Renderer & Game Loopbe split into smaller, more focused modules? Cohesion score 0.06956521739130435 - nodes in this community are weakly interconnected. - Should
Graphics Vulkan Rendererbe split into smaller, more focused modules? Cohesion score 0.06543385490753911 - nodes in this community are weakly interconnected. - Should
AI Pipe Protocolbe split into smaller, more focused modules? Cohesion score 0.12063492063492064 - nodes in this community are weakly interconnected.