# chocolate-bar2410/cinnamon-3d-ui architecture

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

- Interactive diagram: https://gitdiagram.com/chocolate-bar2410/cinnamon-3d-ui
- Repository: https://github.com/chocolate-bar2410/cinnamon-3d-ui

## Overview

Cinnamon is a Roblox 3D UI framework: developers require its public module, then use it to build hierarchical, laid-out interfaces for screen- or world-anchored UI, with animation support. The README documents those capabilities, and the source tree identifies corresponding modules. Source excerpts were unavailable, so internal calls and the compiler’s role are not asserted; the graph shows documented capabilities rather than inferred wiring.

Main entry points: [`src/init.lua`](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/init.lua) (Cinnamon), [`src/Animation/init.lua`](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/init.lua) (Animations), [`src/Container.lua`](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Container.lua) (Container), [`src/ScreenContainer.lua`](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/ScreenContainer.lua) (Screen Container)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public API"]
  node_cinnamon["Cinnamon<br/>[init.lua]"]
end

subgraph group_ui["UI Structure"]
  node_element["Element<br/>[Element.lua]"]
  node_container["Container<br/>[Container.lua]"]
  node_screen["Screen Container"]
end

subgraph group_behavior["UI Behavior"]
  node_layout["Layouts<br/>[Layout.lua]"]
  node_animation["Animations<br/>[init.lua]"]
  node_tween["Tweens<br/>[Tween.lua]"]
  node_bezier["Bezier Curves<br/>[Bezier.lua]"]
  node_spring["Springs<br/>[Spring.lua]"]
  node_oscillator["Oscillators<br/>[Oscillator.lua]"]
end

subgraph group_internal["Framework Internals"]
  node_lookup["Lookup<br/>[Lookup.lua]"]
  node_debug["Debug Renderer<br/>[DebugRenderer.lua]"]
  node_errors["Errors<br/>[Errors.lua]"]
  node_compilation["Compilation<br/>[init.lua]"]
end

node_developer(("UI Developer"))

node_developer -->|"requires"| node_cinnamon
node_cinnamon -->|"supports hierarchy"| node_container
node_cinnamon -->|"supports layouts"| node_layout
node_cinnamon -->|"supports animation"| node_animation
node_cinnamon -->|"supports screen UI"| node_screen
node_animation -->|"includes"| node_tween
node_animation -->|"includes"| node_bezier
node_animation -->|"includes"| node_spring
node_animation -->|"includes"| node_oscillator

click node_cinnamon "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/init.lua"
click node_element "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Element.lua"
click node_container "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Container.lua"
click node_screen "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/ScreenContainer.lua"
click node_layout "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Layout.lua"
click node_animation "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/init.lua"
click node_tween "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Tween.lua"
click node_bezier "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Bezier.lua"
click node_spring "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Spring.lua"
click node_oscillator "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Oscillator.lua"
click node_lookup "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Lookup.lua"
click node_debug "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/DebugRenderer.lua"
click node_errors "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Errors.lua"
click node_compilation "https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Compilation/init.lua"

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_cinnamon,node_developer toneBlue
class node_element,node_container,node_screen toneAmber
class node_layout,node_animation,node_tween,node_bezier,node_spring,node_oscillator toneMint
class node_lookup,node_debug,node_errors,node_compilation toneRose
```

## Components

### Public API

- [Cinnamon](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/init.lua): `src/init.lua`

### UI Structure

- [Element](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Element.lua): `src/Element.lua`
- [Container](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Container.lua): `src/Container.lua`
- [Screen Container](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/ScreenContainer.lua): `src/ScreenContainer.lua`

### UI Behavior

- [Layouts](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Layout.lua): `src/Layout.lua`
- [Animations](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/init.lua): `src/Animation/init.lua`
- [Tweens](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Tween.lua): `src/Animation/Tween.lua`
- [Bezier Curves](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Bezier.lua): `src/Animation/Bezier.lua`
- [Springs](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Spring.lua): `src/Animation/Spring.lua`
- [Oscillators](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Animation/Oscillator.lua): `src/Animation/Oscillator.lua`

### Framework Internals

- [Lookup](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Lookup.lua): `src/Lookup.lua`
- [Debug Renderer](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/DebugRenderer.lua): `src/DebugRenderer.lua`
- [Errors](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Errors.lua): `src/Errors.lua`
- [Compilation](https://github.com/chocolate-bar2410/cinnamon-3d-ui/blob/main/src/Compilation/init.lua): `src/Compilation/init.lua`

### Other components

- **UI Developer**

## Connections

- UI Developer → Cinnamon: requires
- Cinnamon → Container: supports hierarchy
- Cinnamon → Layouts: supports layouts
- Cinnamon → Animations: supports animation
- Cinnamon → Screen Container: supports screen UI
- Animations → Tweens: includes
- Animations → Bezier Curves: includes
- Animations → Springs: includes
- Animations → Oscillators: includes
