Skip to content

Commit

Permalink
another image.....
Browse files Browse the repository at this point in the history
  • Loading branch information
chapulina committed Dec 11, 2018
1 parent 33c0502 commit a713ab9
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions doc/architecture_design.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Ignition Gazebo design

> This is a work in progress, so any details may change. Items marked with ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) are especially likely to change.
> This is a work in progress, so any details may change. Items marked with ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) are especially likely to change.
## Goals

Expand Down Expand Up @@ -39,14 +39,14 @@

* **Simulation runner**: Runs a whole world or some levels of a world, but no
more than 1 world.
* ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) It has a single ECM with all the entities and components
* ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) It has a single ECM with all the entities and components
relevant to the levels / world / performer being simulated.
* It has an event manager.
* It loads up a set of systems.
* Each simulation runner may run in a separate process, or share a process
with other runners - this is decided at runtime.

* ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) **Primary / secondary runner**: For each world that is split
* ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) **Primary / secondary runner**: For each world that is split
across multiple
runners, there is exactly one primary simulation runner and one or more
secondary runners. The **secondary** runners are running a set of levels of
Expand All @@ -63,12 +63,12 @@
> An alternative would be that actors and other simple dynamic models are
handled by the primary runner.

* ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) **Global entities**: Entities which are present on all levels,
* ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) **Global entities**: Entities which are present on all levels,
such as the
sun, ground plane, heightmaps, etc. These entities will be duplicated
across all simulation runners.

* ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) **Default level**: Level which handles all entities that are
* ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) **Default level**: Level which handles all entities that are
not within
any other levels, including performers.

Expand Down Expand Up @@ -175,9 +175,9 @@ Let's take a look at how levels are loaded / unloaded as the performer moves:

![](architecture_design/05.png)

### ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) Multiple performers
### ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) Multiple performers

> **This whole section is ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png)**
> **This whole section is ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif)**
In case there are multiple performers, the simulation will be broken down into:

Expand Down Expand Up @@ -418,7 +418,7 @@ the figure
</sdf>
```

### ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) Keeping runners in sync
### ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) Keeping runners in sync

Each secondary runner has its own ECS, with detailed entities loaded. The
primary runner keeps a high-level ECM, which keeps track of which performers are
Expand All @@ -428,7 +428,7 @@ level and performer is only simulated at one runner at a time.

> **TODO**: Explain how the primary does this
## ![](https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/htc/37/construction-sign_1f6a7.png) Component serialization
## ![](https://66.media.tumblr.com/c95e2b7e9bd698f0ef7b968faaed23f7/tumblr_inline_mkn8tqM06r1roozkr.gif) Component serialization

> **TODO**: Describe how components will be serialized to be sent across runners
> so their state is synced.
Expand Down

0 comments on commit a713ab9

Please sign in to comment.