# hsantosdias/old_robotic_arm architecture

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

## Overview

Braço Robô is a legacy Java applet that simulates and renders a 3D robotic arm. Its principal workflow is user mouse/keyboard control, simulation updates, and graphical output; the README also describes 3D transformations, projection, and the arm’s geometric parts. The README documents component roles but no source excerpts were available, so links between geometry, transformation, and projection classes are omitted where actual calls cannot be verified.

Main entry points: [`Robot.java`](https://github.com/hsantosdias/old_robotic_arm/blob/main/Robot.java) (Applet controller), [`World.java`](https://github.com/hsantosdias/old_robotic_arm/blob/main/World.java) (Graphic world)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Applet runtime"]
  node_robot["Applet controller<br/>[Robot.java]"]
  node_world["Graphic world<br/>[World.java]"]
end

subgraph group_graphics["3D graphics"]
  node_matrix["3D transforms<br/>[Matrix.java]"]
  node_point["3D coordinates<br/>[Point3d.java]"]
  node_screen["2D projection<br/>[Screen.java]"]
end

subgraph group_model["Robot geometry"]
  node_shape["Shape definition<br/>[Shape.java]"]
  node_base["Arm base<br/>[Base.java]"]
  node_support["Arm support<br/>[Support.java]"]
  node_joint1["Joint one<br/>[Joint.java]"]
  node_joint2["Joint two<br/>[Joint2.java]"]
  node_joint3["Joint three<br/>[Joint3.java]"]
  node_pincer["Gripper<br/>[Pincer.java]"]
  node_cube["Cube geometry<br/>[Cubo.java]"]
  node_hshape["H geometry<br/>[H.java]"]
  node_pyramid["Pyramid geometry<br/>[Pyramid.java]"]
end

node_user(("User"))

node_user -->|"mouse and keyboard input"| node_robot
node_robot -->|"manages simulation"| node_world

click node_robot "https://github.com/hsantosdias/old_robotic_arm/blob/main/Robot.java"
click node_world "https://github.com/hsantosdias/old_robotic_arm/blob/main/World.java"
click node_matrix "https://github.com/hsantosdias/old_robotic_arm/blob/main/Matrix.java"
click node_point "https://github.com/hsantosdias/old_robotic_arm/blob/main/Point3d.java"
click node_screen "https://github.com/hsantosdias/old_robotic_arm/blob/main/Screen.java"
click node_shape "https://github.com/hsantosdias/old_robotic_arm/blob/main/Shape.java"
click node_base "https://github.com/hsantosdias/old_robotic_arm/blob/main/Base.java"
click node_support "https://github.com/hsantosdias/old_robotic_arm/blob/main/Support.java"
click node_joint1 "https://github.com/hsantosdias/old_robotic_arm/blob/main/Joint.java"
click node_joint2 "https://github.com/hsantosdias/old_robotic_arm/blob/main/Joint2.java"
click node_joint3 "https://github.com/hsantosdias/old_robotic_arm/blob/main/Joint3.java"
click node_pincer "https://github.com/hsantosdias/old_robotic_arm/blob/main/Pincer.java"
click node_cube "https://github.com/hsantosdias/old_robotic_arm/blob/main/Cubo.java"
click node_hshape "https://github.com/hsantosdias/old_robotic_arm/blob/main/H.java"
click node_pyramid "https://github.com/hsantosdias/old_robotic_arm/blob/main/Pyramid.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_matrix,node_point,node_screen toneAmber
class node_shape,node_base,node_support,node_joint1,node_joint2,node_joint3,node_pincer,node_cube,node_hshape,node_pyramid toneMint
```

## Components

### Applet runtime

- [Applet controller](https://github.com/hsantosdias/old_robotic_arm/blob/main/Robot.java): `Robot.java`
- [Graphic world](https://github.com/hsantosdias/old_robotic_arm/blob/main/World.java): `World.java`

### 3D graphics

- [3D transforms](https://github.com/hsantosdias/old_robotic_arm/blob/main/Matrix.java): `Matrix.java`
- [3D coordinates](https://github.com/hsantosdias/old_robotic_arm/blob/main/Point3d.java): `Point3d.java`
- [2D projection](https://github.com/hsantosdias/old_robotic_arm/blob/main/Screen.java): `Screen.java`

### Robot geometry

- [Shape definition](https://github.com/hsantosdias/old_robotic_arm/blob/main/Shape.java): `Shape.java`
- [Arm base](https://github.com/hsantosdias/old_robotic_arm/blob/main/Base.java): `Base.java`
- [Arm support](https://github.com/hsantosdias/old_robotic_arm/blob/main/Support.java): `Support.java`
- [Joint one](https://github.com/hsantosdias/old_robotic_arm/blob/main/Joint.java): `Joint.java`
- [Joint two](https://github.com/hsantosdias/old_robotic_arm/blob/main/Joint2.java): `Joint2.java`
- [Joint three](https://github.com/hsantosdias/old_robotic_arm/blob/main/Joint3.java): `Joint3.java`
- [Gripper](https://github.com/hsantosdias/old_robotic_arm/blob/main/Pincer.java): `Pincer.java`
- [Cube geometry](https://github.com/hsantosdias/old_robotic_arm/blob/main/Cubo.java): `Cubo.java`
- [H geometry](https://github.com/hsantosdias/old_robotic_arm/blob/main/H.java): `H.java`
- [Pyramid geometry](https://github.com/hsantosdias/old_robotic_arm/blob/main/Pyramid.java): `Pyramid.java`

### Other components

- **User**

## Connections

- User → Applet controller: mouse and keyboard input
- Applet controller → Graphic world: manages simulation
