# quentin6440/42syncro architecture

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

- Interactive diagram: https://gitdiagram.com/quentin6440/42syncro
- Repository: https://github.com/quentin6440/42syncro

## Overview

This repository is a collection of independent C and C++ coursework exercises, not one integrated application. The clearest end-to-end runtime shown is miniRT: a user supplies a scene file, the program parses it, initializes a window, renders the scene, and displays the image. Other directories contain standalone exercises and small utilities. No README was provided, and source excerpts are limited; links between unsampled components are omitted.

Main entry points: [`minirtNew/src/main.c`](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/main.c) (Program entry), [`minirtNew/src/render.c`](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/render.c) (Scene renderer), [`minirtNew/src/parser.c`](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/parser.c) (Scene parser), [`minirtNew/include/minirt.h`](https://github.com/quentin6440/42syncro/blob/main/minirtNew/include/minirt.h) (Scene state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_minirt["miniRT raytracer"]
  node_rt_entry["Program entry<br/>[main.c]"]
  node_parser["Scene parser<br/>[parser.c]"]
  node_scene["Scene state<br/>[minirt.h]"]
  node_renderer["Scene renderer<br/>[render.c]"]
  node_rays["Ray and intersections<br/>[intersect.c]"]
  node_lighting["Lighting and shadows<br/>[light.c]"]
  node_primitives["Scene primitives<br/>[obj_sp.c]"]
end

subgraph group_cpp["C++ exercises"]
  node_phonebook["Phonebook CLI<br/>[main.cpp]"]
  node_fixed["Fixed-point arithmetic<br/>[Fixed.cpp]"]
  node_animals["Animal polymorphism<br/>[main.cpp]"]
  node_traps["Trap inheritance<br/>[main.cpp]"]
  node_text_replace["Text replacement<br/>[main.cpp]"]
end

subgraph group_tools["C utilities"]
  node_logger["Logger example<br/>[main.cpp]"]
  node_shell_tools["Shell utilities<br/>[picoshell.c]"]
  node_network_range["Network range tool<br/>[netrange.c]"]
  node_corewar_ops["Corewar operations<br/>[op.c]"]
end

node_user(("Scene-file user"))
node_scene_file["RT scene file"]
node_window["MiniLibX window"]
node_pixels["Rendered image"]

node_user -->|"runs with scene"| node_rt_entry
node_rt_entry -->|"opens"| node_scene_file
node_rt_entry -->|"calls"| node_parser
node_parser -->|"fills"| node_scene
node_rt_entry -->|"calls"| node_renderer
node_renderer -->|"uses"| node_rays
node_renderer -->|"uses"| node_lighting
node_renderer -->|"uses"| node_primitives
node_rt_entry -->|"initializes"| node_window
node_rt_entry -->|"displays"| node_pixels

click node_rt_entry "https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/main.c"
click node_parser "https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/parser.c"
click node_scene "https://github.com/quentin6440/42syncro/blob/main/minirtNew/include/minirt.h"
click node_renderer "https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/render.c"
click node_rays "https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/intersect.c"
click node_lighting "https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/light.c"
click node_primitives "https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/obj_sp.c"
click node_phonebook "https://github.com/quentin6440/42syncro/blob/main/c%2B%2B00/ex01/src/main.cpp"
click node_fixed "https://github.com/quentin6440/42syncro/blob/main/c%2B%2B02/ex02/src/Fixed.cpp"
click node_animals "https://github.com/quentin6440/42syncro/blob/main/c%2B%2B04/ex01/src/main.cpp"
click node_traps "https://github.com/quentin6440/42syncro/blob/main/c%2B%2B03/ex02/src/main.cpp"
click node_text_replace "https://github.com/quentin6440/42syncro/blob/main/c%2B%2B01/ex04/src/main.cpp"
click node_logger "https://github.com/quentin6440/42syncro/blob/main/0ex/logger/main.cpp"
click node_shell_tools "https://github.com/quentin6440/42syncro/blob/main/exam4/picoshell.c"
click node_network_range "https://github.com/quentin6440/42syncro/blob/main/netpractice/netrange.c"
click node_corewar_ops "https://github.com/quentin6440/42syncro/blob/main/0ex/otherProjects/corewar/op.c"

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_rt_entry,node_parser,node_scene,node_renderer,node_rays,node_lighting,node_primitives,node_user toneBlue
class node_phonebook,node_fixed,node_animals,node_traps,node_text_replace toneAmber
class node_logger,node_shell_tools,node_network_range,node_corewar_ops toneMint
class node_scene_file,node_window,node_pixels toneIndigo
```

## Components

### miniRT raytracer

- [Program entry](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/main.c): `minirtNew/src/main.c`
- [Scene parser](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/parser.c): `minirtNew/src/parser.c`
- [Scene state](https://github.com/quentin6440/42syncro/blob/main/minirtNew/include/minirt.h): `minirtNew/include/minirt.h`
- [Scene renderer](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/render.c): `minirtNew/src/render.c`
- [Ray and intersections](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/intersect.c): `minirtNew/src/intersect.c`
- [Lighting and shadows](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/light.c): `minirtNew/src/light.c`
- [Scene primitives](https://github.com/quentin6440/42syncro/blob/main/minirtNew/src/obj_sp.c): `minirtNew/src/obj_sp.c`

### C++ exercises

- [Phonebook CLI](https://github.com/quentin6440/42syncro/blob/main/c%2B%2B00/ex01/src/main.cpp): `c++00/ex01/src/main.cpp`
- [Fixed-point arithmetic](https://github.com/quentin6440/42syncro/blob/main/c%2B%2B02/ex02/src/Fixed.cpp): `c++02/ex02/src/Fixed.cpp`
- [Animal polymorphism](https://github.com/quentin6440/42syncro/blob/main/c%2B%2B04/ex01/src/main.cpp): `c++04/ex01/src/main.cpp`
- [Trap inheritance](https://github.com/quentin6440/42syncro/blob/main/c%2B%2B03/ex02/src/main.cpp): `c++03/ex02/src/main.cpp`
- [Text replacement](https://github.com/quentin6440/42syncro/blob/main/c%2B%2B01/ex04/src/main.cpp): `c++01/ex04/src/main.cpp`

### C utilities

- [Logger example](https://github.com/quentin6440/42syncro/blob/main/0ex/logger/main.cpp): `0ex/logger/main.cpp`
- [Shell utilities](https://github.com/quentin6440/42syncro/blob/main/exam4/picoshell.c): `exam4/picoshell.c`
- [Network range tool](https://github.com/quentin6440/42syncro/blob/main/netpractice/netrange.c): `netpractice/netrange.c`
- [Corewar operations](https://github.com/quentin6440/42syncro/blob/main/0ex/otherProjects/corewar/op.c): `0ex/otherProjects/corewar/op.c`

### Other components

- **Scene-file user**
- **RT scene file**
- **MiniLibX window**
- **Rendered image**

## Connections

- Scene-file user → Program entry: runs with scene
- Program entry → RT scene file: opens
- Program entry → Scene parser: calls
- Scene parser → Scene state: fills
- Program entry → Scene renderer: calls
- Scene renderer → Ray and intersections: uses
- Scene renderer → Lighting and shadows: uses
- Scene renderer → Scene primitives: uses
- Program entry → MiniLibX window: initializes
- Program entry → Rendered image: displays
