Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
203 changes: 3 additions & 200 deletions 2025R1_SP1/speos_rpc-25-r1-sp1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,8 @@ The schema shows different ways to use Speos capabilities:
- via CADs / Labs / Viewers GUIs
- via SpeosRPC Server APIs

```mermaid
flowchart LR
SpeosSolver["Speos Solver"]
SpeosRPCServer["SpeosRPC Server"]
StandardUsers["CADs / Labs / Viewers"]
StandardUsers --> |uses|SpeosSolver
SpeosRPCServer --> |uses|SpeosSolver
User --> |calls APIs from|SpeosRPCServer
User --> |uses UI|StandardUsers
```
![Alt text](flowchart.svg?raw=true "Title")


### Speos Solver
The Speos Solver represents the intelligence that is used to handle the light simulation.
Expand Down Expand Up @@ -219,196 +211,7 @@ The Scene is the main Speos feature.
It is a way to gather all features that are needed to have an optical scene.
Just below can be found the SpeosRPC data preparation big picture:

```mermaid
classDiagram

class SensorTemplatesManager {
+Create
+Read
+Update
+Delete
+List
}

class SensorTemplate {
string name
string description
map~string, string~ metadata
OneOf~CameraSensorTemplate, IrradianceSensorTemplate, ...~ sensor_template
}

class SensorInstance {
string name
string description
map~string, string~ metadata
string sensor_guid - SensorTemplate guid coming from manager
OneOf~CameraSensorProperties, IrradianceSensorProperties, ...~ properties
}

SensorTemplate --* SensorTemplatesManager : compose
SensorTemplatesManager .. SensorInstance : guid


class SourceTemplatesManager {
+Create
+Read
+Update
+Delete
+List
}

class SourceTemplate {
string name
string description
map~string, string~ metadata
OneOf~Luminaire, Surface, ...~ source
}

class SourceInstance {
string name
string description
map~string, string~ metadata
string source_guid - SourceTemplate guid coming from manager
OneOf~LuminaireProperties, SurfaceProperties, ...~ properties
}

SourceTemplate --* SourceTemplatesManager : compose
SourceTemplatesManager .. SourceInstance : guid

class VOPTemplatesManager {
+Create
+Read
+Update
+Delete
+List
}

class VOPTemplate {
string name
string description
map~string, string~ metadata
OneOf~Opaque, Optic, ...~ type
}

class SOPTemplatesManager {
+Create
+Read
+Update
+Delete
+List
}

class SOPTemplate {
string name
string description
map~string, string~ metadata
OneOf~Mirror, OpticalPolished, ...~ type
}

class MaterialInstance {
string name
string description
map~string, string~ metadata
string vop_guid - VOPTemplate guid coming from manager
Vector~string~ sop_guids - SOPTemplate guids coming from manager
GeoPaths geometries
}

VOPTemplate --* VOPTemplatesManager : compose
SOPTemplate --* SOPTemplatesManager : compose
VOPTemplatesManager .. MaterialInstance : guid
SOPTemplatesManager .. MaterialInstance : guid

class SimulationTemplatesManager {
+Create
+Read
+Update
+Delete
+List
}

class SimulationTemplate {
string name
string description
map~string, string~ metadata
OneOf~DirectMCSimulationTemplate, InverseMCSimulationTemplate, ...~ simulation_template
}

class SimulationInstance {
string name
string description
map~string, string~ metadata
string simulation_guid - SimulationTemplate guid coming from manager
Vector~string~ sensor_paths
Vector~string~ source_paths
}

SimulationTemplate --* SimulationTemplatesManager : compose
SimulationTemplatesManager .. SimulationInstance : guid

class PartsManager {
+Create
+Read
+Update
+Delete
+List
}

class Part {
string name
string description
map~string, string~ metadata
Vector~string~ body_guids
Vector~PartInstance~ parts - sub parts
}

Part --* PartsManager : compose
PartsManager .. Scene : guid

class ScenesManager {
+Create
+Read
+Update
+Delete
+List
}

class Scene {
string part_guid - Part guid coming from manager
Vector~MaterialInstance~ materials
Vector~SensorInstance~ sensors
Vector~SourceInstance~ sources
Vector~SimulationInstance~ simulations
}

Scene --* ScenesManager : compose
SensorInstance --* Scene : compose
SourceInstance --* Scene : compose
SimulationInstance --* Scene : compose
MaterialInstance --* Scene : compose


class JobsManager {
+Create
+Read
+Update
+Delete
+List
}

class Job {
string name
string description
map~string, string~ metadata
string scene_guid - Scene guid coming from manager
string simulation_path - Simulation path in the scene
Type job_type - CPU, GPU
OneOf~DirectMCSimulationProperties, InverseMCSimulationProperties, ...~ simu_properties
}

Job --* JobsManager : compose
ScenesManager .. Job : guid
```
![Alt text](classDiagram.svg?raw=true "Title")

### Job
The job feature appears in the graph just above.
Expand Down
Binary file added 2025R1_SP1/speos_rpc-25-r1-sp1/classDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions 2025R1_SP1/speos_rpc-25-r1-sp1/classDiagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2025R1_SP1/speos_rpc-25-r1-sp1/flowchart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions 2025R1_SP1/speos_rpc-25-r1-sp1/flowchart.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.