{"id":16979129,"url":"https://github.com/gareththegeek/spatialosdemo","last_synced_at":"2026-04-24T20:34:35.869Z","repository":{"id":116678978,"uuid":"104329379","full_name":"gareththegeek/spatialosdemo","owner":"gareththegeek","description":"A simple demonstration of SpatialOS","archived":false,"fork":false,"pushed_at":"2017-09-27T12:39:00.000Z","size":89,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-18T14:44:25.687Z","etag":null,"topics":["spatialos","unity"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gareththegeek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-21T09:38:48.000Z","updated_at":"2017-11-02T08:25:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"c23dea2b-1de0-4415-a1bc-be7eaa37740e","html_url":"https://github.com/gareththegeek/spatialosdemo","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/gareththegeek/spatialosdemo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2Fspatialosdemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2Fspatialosdemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2Fspatialosdemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2Fspatialosdemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gareththegeek","download_url":"https://codeload.github.com/gareththegeek/spatialosdemo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gareththegeek%2Fspatialosdemo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32239930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["spatialos","unity"],"created_at":"2024-10-14T01:44:55.951Z","updated_at":"2026-04-24T20:34:35.864Z","avatar_url":"https://github.com/gareththegeek.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SpatialOS Demonstration\n---\n\nBased upon the SpatialOS Start Project:\n\n- *GitHub repository*: [https://github.com/spatialos/StarterProject](https://github.com/spatialos/StarterProject)\n\n---\n\n## Introduction\n\nThis is a simple project I built using Unity and SpatialOS for a presentation\n\nThe project is an agent based simulation of vehicles traveling in a circle.  Each vehicle has a limited sensor range and attempts to avoid collisions with other vehicles by modifying its speed.  It is possible to specify multiple scenarios by implementing the ISnapshot interface.\n\nThe project contains a number of tags:\n\n## 1. Starting Point\n\nPretty much the Starter Template with the addition of a simple Vehicle Prefab.\n\n## 2 Simple Positioning\n\nA simple VehicleController script causes all vehicles to travel at constant speed in a perfect circle.\n\n## 3 Basic Vehicle Control\n\nA VehicleControl component specifies the desired speed and maximum speed and acceleration of a vehicle.  Vehicles can only modify their speed by at most, their maximum acceleration value.\n\n## 4 Sensors and Random Properties\n\nVehicles now have a sensor area and will only respond to vehicles within that area.  If no vehicles are sensed, the vehicle accelerates to maximum speed.  Otherwise the vehicle modifies its speed based upon the proximity of the nearest vehicle.  The snapshot now contains randomised maximum speed and acceleration values to make things interesting.\n\n## 5 Brake Event\n\nAdd brake lights to the vehicle prefab and show brake likes using SpatialOS events when the vehicle is stationary or decelerating rapidly.\n\n## 6 Snapshots (and more)\n\nAllow multiple snapshots to be defined using the ISnapshot interface.  The way the vehicle responds to other vehicles is added to the VehicleControl component and can now be configured in snapshot.  Added a reaction time, vehicles' decisions are placed in a ring buffer introducing a delay between decision and action.\n\nImproved sensor logic to make it compatible with multiple workers\n\nAdd a traffic light, just for fun.\n\n## 7 Multiple Workers and Cloud Deployment\n\nUpdate the default_launch.json to utilise four workers in a hex grid layout.\n\n## Running the project\n\nTo run the project locally, first build it by running `spatial worker build`, then start the server with `spatial local launch`. You can connect a client by opening the Unity project and pressing the play button, or by running `spatial local worker launch UnityClient default`. See the [documentation](https://spatialos.improbable.io/docs/reference/latest/developing/local/run) for more details.\n\nTo deploy the project to the cloud, first build it by running `spatial worker build -t=deployment`, then upload the assembly with `spatial cloud upload \u003cassembly name\u003e`, and finally deploy it with `spatial cloud launch \u003cassembly name\u003e \u003claunch configuration file\u003e \u003cdeployment name\u003e --snapshot=\u003csnapshot file\u003e`. You can obtain and share links to connect to the deployment from the [console](http://console.improbable.io/projects). See the [documentation](https://spatialos.improbable.io/docs/reference/latest/developing/deploy-an-application) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgareththegeek%2Fspatialosdemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgareththegeek%2Fspatialosdemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgareththegeek%2Fspatialosdemo/lists"}