# hsantosdias/robotic_arm_2025 architecture

> Architecture diagram of the GitHub repository hsantosdias/robotic_arm_2025, 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/hsantosdias/robotic_arm_2025
- Repository: https://github.com/hsantosdias/robotic_arm_2025

## Overview

This is a Java desktop simulation of an articulated 3D robot arm. Users manipulate joint angles and the viewport with mouse and keyboard; a render/update loop transforms the scene and paints its projected geometry. The README identifies the scene and rendering capabilities, while sampled code confirms the input, geometry, transformation, and projection layers. World-to-scene wiring is not visible in the excerpts, so those links are omitted.

Main entry points: [`Shape.java`](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Shape.java) (Shape Base), [`Robot.java`](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Robot.java) (Robot UI), [`Support.java`](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Support.java) (Arm Support), [`Joint.java`](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint.java) (Joint One)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_robot["Robot UI<br/>[Robot.java]"]
  node_world["Scene World<br/>[World.java]"]
end

subgraph group_model["Arm Geometry"]
  node_base["Fixed Base<br/>[Base.java]"]
  node_support["Arm Support<br/>[Support.java]"]
  node_joint["Joint One<br/>[Joint.java]"]
  node_joint2["Joint Two<br/>[Joint2.java]"]
  node_joint3["Joint Three<br/>[Joint3.java]"]
  node_pyramid["Gripper Mount<br/>[Pyramid.java]"]
  node_pincer["Pincer<br/>[Pincer.java]"]
  node_cubo["Cube Shape<br/>[Cubo.java]"]
  node_hshape["H Shape<br/>[H.java]"]
end

subgraph group_graphics["3D Graphics"]
  node_shape["Shape Base<br/>[Shape.java]"]
  node_matrix["Transforms<br/>[Matrix.java]"]
  node_point["3D Points<br/>[Point3d.java]"]
  node_screen["Screen Projection<br/>[Screen.java]"]
end

node_user(("User"))

node_user -->|"mouse and keys"| node_robot
node_robot -->|"creates scene"| node_world
node_robot -->|"builds view transform"| node_matrix
node_base -->|"draws"| node_support
node_support -->|"draws"| node_joint
node_joint -->|"draws"| node_joint2
node_joint2 -->|"draws"| node_joint3
node_joint3 -->|"draws"| node_pyramid
node_pyramid -->|"draws"| node_pincer
node_shape -->|"transforms points"| node_point
node_shape -->|"projects points"| node_screen
node_base -->|"extends"| node_shape
node_support -->|"extends"| node_shape
node_joint -->|"extends"| node_shape
node_joint2 -->|"extends"| node_shape
node_joint3 -->|"extends"| node_shape
node_pyramid -->|"extends"| node_shape
node_cubo -->|"extends"| node_shape
node_hshape -->|"extends"| node_shape

click node_robot "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Robot.java"
click node_world "https://github.com/hsantosdias/robotic_arm_2025/blob/main/World.java"
click node_base "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Base.java"
click node_support "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Support.java"
click node_joint "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint.java"
click node_joint2 "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint2.java"
click node_joint3 "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint3.java"
click node_pyramid "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Pyramid.java"
click node_pincer "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Pincer.java"
click node_cubo "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Cubo.java"
click node_hshape "https://github.com/hsantosdias/robotic_arm_2025/blob/main/H.java"
click node_shape "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Shape.java"
click node_matrix "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Matrix.java"
click node_point "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Point3d.java"
click node_screen "https://github.com/hsantosdias/robotic_arm_2025/blob/main/Screen.java"

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_robot,node_world,node_user toneBlue
class node_base,node_support,node_joint,node_joint2,node_joint3,node_pyramid,node_pincer,node_cubo,node_hshape toneAmber
class node_shape,node_matrix,node_point,node_screen toneMint
```

## Components

### Application

- [Robot UI](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Robot.java): `Robot.java`
- [Scene World](https://github.com/hsantosdias/robotic_arm_2025/blob/main/World.java): `World.java`

### Arm Geometry

- [Fixed Base](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Base.java): `Base.java`
- [Arm Support](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Support.java): `Support.java`
- [Joint One](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint.java): `Joint.java`
- [Joint Two](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint2.java): `Joint2.java`
- [Joint Three](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Joint3.java): `Joint3.java`
- [Gripper Mount](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Pyramid.java): `Pyramid.java`
- [Pincer](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Pincer.java): `Pincer.java`
- [Cube Shape](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Cubo.java): `Cubo.java`
- [H Shape](https://github.com/hsantosdias/robotic_arm_2025/blob/main/H.java): `H.java`

### 3D Graphics

- [Shape Base](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Shape.java): `Shape.java`
- [Transforms](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Matrix.java): `Matrix.java`
- [3D Points](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Point3d.java): `Point3d.java`
- [Screen Projection](https://github.com/hsantosdias/robotic_arm_2025/blob/main/Screen.java): `Screen.java`

### Other components

- **User**

## Connections

- User → Robot UI: mouse and keys
- Robot UI → Scene World: creates scene
- Robot UI → Transforms: builds view transform
- Fixed Base → Arm Support: draws
- Arm Support → Joint One: draws
- Joint One → Joint Two: draws
- Joint Two → Joint Three: draws
- Joint Three → Gripper Mount: draws
- Gripper Mount → Pincer: draws
- Shape Base → 3D Points: transforms points
- Shape Base → Screen Projection: projects points
- Fixed Base → Shape Base: extends
- Arm Support → Shape Base: extends
- Joint One → Shape Base: extends
- Joint Two → Shape Base: extends
- Joint Three → Shape Base: extends
- Gripper Mount → Shape Base: extends
- Cube Shape → Shape Base: extends
- H Shape → Shape Base: extends
