# mrkenny44/boss_and_coffee architecture

> Architecture diagram of the GitHub repository mrkenny44/boss_and_coffee, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mrkenny44/boss_and_coffee
- Repository: https://github.com/mrkenny44/boss_and_coffee

## Overview

This tree is a Unity package-cache slice, centered on 2D Animation rather than one standalone application. Its principal workflow is authoring a character’s skeleton, mesh, and bone weights in the editor, then deforming skinned sprites at runtime; the tree also exposes IK, sprite libraries, and neighboring Tilemap, SpriteShape, Timeline, and PSD-importer features. Paths and component roles are identifiable from filenames, but most implementation excerpts are partial or absent, so the graph keeps cross-module wiring conservative.

Main entry points: [`Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SkinningModule.cs`](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningModule.cs) (Skinning editor), [`Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/IMGUI/SpriteMeshController.cs`](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/IMGUI/SpriteMeshController.cs) (Mesh editing), [`Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/WeightPainterTool.cs`](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/WeightPainterTool.cs) (Weight tools), [`Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SkinningCache/SkinningCache.cs`](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningCache/SkinningCache.cs) (Skinning cache)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Character authoring"]
  node_skinning_module["Skinning editor<br/>[SkinningModule.cs]"]
  node_skeleton_tool["Skeleton tools<br/>[SkeletonTool.cs]"]
  node_mesh_controller["Mesh editing"]
  node_mesh_data["Mesh data"]
  node_weight_tools["Weight tools"]
  node_weights_generator["Weight generation"]
  node_skin_cache["Skinning cache<br/>[SkinningCache.cs]"]
  node_serializer["Skinning serializers"]
end

subgraph group_runtime["Sprite runtime"]
  node_sprite_skin["Sprite skin<br/>[SpriteSkin.cs]"]
  node_prepare_skinning["Prepare skinning"]
  node_deform_system["Sprite deformation"]
  node_buffer_manager["Deform buffers<br/>[BufferManager.cs]"]
  node_engine_bridge["Engine bridge"]
end

subgraph group_ik["Inverse kinematics"]
  node_ik_manager["IK manager<br/>[IKManager2D.cs]"]
  node_ik_solvers["IK solvers<br/>[FABRIK2D.cs]"]
end

subgraph group_sprite_assets["Sprite assets"]
  node_sprite_library["Sprite library<br/>[SpriteLibrary.cs]"]
  node_sprite_resolver["Sprite resolver<br/>[SpriteResolver.cs]"]
end

subgraph group_editor_ecosystem["Editor tools"]
  node_tilemap_drag["Tile drag-drop"]
  node_sprite_shape["Sprite Shape"]
  node_timeline_snap["Timeline snapping<br/>[SnapEngine.cs]"]
  node_psd_settings["PSD texture settings"]
end

node_user(("Unity user"))
node_unity_engine(("Unity rendering"))

node_user -->|"edits characters"| node_skinning_module
node_skinning_module -->|"offers tools"| node_skeleton_tool
node_skinning_module -->|"edits mesh"| node_mesh_controller
node_mesh_controller -->|"updates mesh"| node_mesh_data
node_skinning_module -->|"paints weights"| node_weight_tools
node_weight_tools -.->|"generates weights"| node_weights_generator
node_skinning_module -.->|"uses cache"| node_skin_cache
node_skin_cache -.->|"serializes state"| node_serializer
node_sprite_skin -.->|"prepares skinning"| node_prepare_skinning
node_prepare_skinning -.->|"dispatches deformation"| node_deform_system
node_deform_system -.->|"uses buffers"| node_buffer_manager
node_engine_bridge -->|"sets deform buffer"| node_unity_engine
node_ik_manager -.->|"runs solver"| node_ik_solvers
node_sprite_library -.->|"provides sprite data"| node_sprite_resolver
node_user -->|"drops tiles"| node_tilemap_drag
node_tilemap_drag -->|"places tiles"| node_unity_engine
node_user -.->|"edits shape"| node_sprite_shape
node_user -.->|"manipulates timeline"| node_timeline_snap
node_user -.->|"sets import options"| node_psd_settings

click node_skinning_module "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningModule.cs"
click node_skeleton_tool "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkeletonTool/SkeletonTool.cs"
click node_mesh_controller "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/IMGUI/SpriteMeshController.cs"
click node_mesh_data "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SpriteMeshData/SpriteMeshDataController.cs"
click node_weight_tools "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/WeightPainterTool.cs"
click node_weights_generator "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/WeightsGenerator/BoundedBiharmonicWeightsGenerator.cs"
click node_skin_cache "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningCache/SkinningCache.cs"
click node_serializer "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningSerializer/SkinningSerializerJSON.cs"
click node_sprite_skin "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/SpriteSkin.cs"
click node_prepare_skinning "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/PrepareSkinningSystem.cs"
click node_deform_system "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/DeformSpriteSystem.cs"
click node_buffer_manager "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/BufferManager.cs"
click node_engine_bridge "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.common%404.0.3/Runtime/InternalBridge/InternalEngineBridge.cs"
click node_ik_manager "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/IK/Runtime/IKManager2D.cs"
click node_ik_solvers "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/IK/Runtime/Solvers/FABRIK2D.cs"
click node_sprite_library "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/SpriteLib/SpriteLibrary.cs"
click node_sprite_resolver "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/SpriteLib/SpriteResolver.cs"
click node_tilemap_drag "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.tilemap%401.0.0/Editor/TileDragAndDropManager.cs"
click node_sprite_shape "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.spriteshape%405.1.3/Runtime/SpriteShapeController.cs"
click node_timeline_snap "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.timeline%401.4.8/Editor/treeview/Snapping/SnapEngine.cs"
click node_psd_settings "https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.psdimporter%404.1.0/Editor/TexturePlatformSettingsController.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_skinning_module,node_skeleton_tool,node_mesh_controller,node_mesh_data,node_weight_tools,node_weights_generator,node_skin_cache,node_serializer,node_user toneBlue
class node_sprite_skin,node_prepare_skinning,node_deform_system,node_buffer_manager,node_engine_bridge toneAmber
class node_ik_manager,node_ik_solvers toneMint
class node_sprite_library,node_sprite_resolver toneRose
class node_tilemap_drag,node_sprite_shape,node_timeline_snap,node_psd_settings,node_unity_engine toneIndigo
```

## Components

### Character authoring

- [Skinning editor](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningModule.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SkinningModule.cs`
- [Skeleton tools](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkeletonTool/SkeletonTool.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SkeletonTool/SkeletonTool.cs`
- [Mesh editing](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/IMGUI/SpriteMeshController.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/IMGUI/SpriteMeshController.cs`
- [Mesh data](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SpriteMeshData/SpriteMeshDataController.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SpriteMeshData/SpriteMeshDataController.cs`
- [Weight tools](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/WeightPainterTool.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/WeightPainterTool.cs`
- [Weight generation](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/WeightsGenerator/BoundedBiharmonicWeightsGenerator.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/WeightsGenerator/BoundedBiharmonicWeightsGenerator.cs`
- [Skinning cache](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningCache/SkinningCache.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SkinningCache/SkinningCache.cs`
- [Skinning serializers](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Editor/SkinningModule/SkinningSerializer/SkinningSerializerJSON.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Editor/SkinningModule/SkinningSerializer/SkinningSerializerJSON.cs`

### Sprite runtime

- [Sprite skin](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/SpriteSkin.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Runtime/SpriteSkin.cs`
- [Prepare skinning](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/PrepareSkinningSystem.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Runtime/PrepareSkinningSystem.cs`
- [Sprite deformation](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/DeformSpriteSystem.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Runtime/DeformSpriteSystem.cs`
- [Deform buffers](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/BufferManager.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Runtime/BufferManager.cs`
- [Engine bridge](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.common%404.0.3/Runtime/InternalBridge/InternalEngineBridge.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.common@4.0.3/Runtime/InternalBridge/InternalEngineBridge.cs`

### Inverse kinematics

- [IK manager](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/IK/Runtime/IKManager2D.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/IK/Runtime/IKManager2D.cs`
- [IK solvers](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/IK/Runtime/Solvers/FABRIK2D.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/IK/Runtime/Solvers/FABRIK2D.cs`

### Sprite assets

- [Sprite library](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/SpriteLib/SpriteLibrary.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Runtime/SpriteLib/SpriteLibrary.cs`
- [Sprite resolver](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.animation%405.0.6/Runtime/SpriteLib/SpriteResolver.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.animation@5.0.6/Runtime/SpriteLib/SpriteResolver.cs`

### Editor tools

- [Tile drag-drop](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.tilemap%401.0.0/Editor/TileDragAndDropManager.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.tilemap@1.0.0/Editor/TileDragAndDropManager.cs`
- [Sprite Shape](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.spriteshape%405.1.3/Runtime/SpriteShapeController.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.spriteshape@5.1.3/Runtime/SpriteShapeController.cs`
- [Timeline snapping](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.timeline%401.4.8/Editor/treeview/Snapping/SnapEngine.cs): `Boss and Coffee/Library/PackageCache/com.unity.timeline@1.4.8/Editor/treeview/Snapping/SnapEngine.cs`
- [PSD texture settings](https://github.com/mrkenny44/boss_and_coffee/blob/main/Boss%20and%20Coffee/Library/PackageCache/com.unity.2d.psdimporter%404.1.0/Editor/TexturePlatformSettingsController.cs): `Boss and Coffee/Library/PackageCache/com.unity.2d.psdimporter@4.1.0/Editor/TexturePlatformSettingsController.cs`

### Other components

- **Unity user**
- **Unity rendering**

## Connections

- Unity user → Skinning editor: edits characters
- Skinning editor → Skeleton tools: offers tools
- Skinning editor → Mesh editing: edits mesh
- Mesh editing → Mesh data: updates mesh
- Skinning editor → Weight tools: paints weights
- Weight tools → Weight generation: generates weights
- Skinning editor → Skinning cache: uses cache
- Skinning cache → Skinning serializers: serializes state
- Sprite skin → Prepare skinning: prepares skinning
- Prepare skinning → Sprite deformation: dispatches deformation
- Sprite deformation → Deform buffers: uses buffers
- Engine bridge → Unity rendering: sets deform buffer
- IK manager → IK solvers: runs solver
- Sprite library → Sprite resolver: provides sprite data
- Unity user → Tile drag-drop: drops tiles
- Tile drag-drop → Unity rendering: places tiles
- Unity user → Sprite Shape: edits shape
- Unity user → Timeline snapping: manipulates timeline
- Unity user → PSD texture settings: sets import options
