{"id":16394250,"url":"https://github.com/tryexceptpass/sofi-unity3d","last_synced_at":"2025-03-21T02:32:22.804Z","repository":{"id":96593912,"uuid":"76810477","full_name":"tryexceptpass/sofi-unity3d","owner":"tryexceptpass","description":null,"archived":false,"fork":false,"pushed_at":"2018-06-24T19:37:08.000Z","size":9,"stargazers_count":39,"open_issues_count":4,"forks_count":12,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-17T20:01:46.227Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/tryexceptpass.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}},"created_at":"2016-12-18T22:29:37.000Z","updated_at":"2022-01-18T12:59:59.000Z","dependencies_parsed_at":"2024-01-14T01:02:35.908Z","dependency_job_id":null,"html_url":"https://github.com/tryexceptpass/sofi-unity3d","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryexceptpass%2Fsofi-unity3d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryexceptpass%2Fsofi-unity3d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryexceptpass%2Fsofi-unity3d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryexceptpass%2Fsofi-unity3d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tryexceptpass","download_url":"https://codeload.github.com/tryexceptpass/sofi-unity3d/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244725586,"owners_count":20499633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-11T04:55:15.137Z","updated_at":"2025-03-21T02:32:22.798Z","avatar_url":"https://github.com/tryexceptpass.png","language":"Python","readme":"`sofi-unity3d` explores how to control a Unity3D game environment through [sofi](https://www.github.com/tryexceptpass/sofi) by using [WebSocketSharp](https://github.com/sta/websocket-sharp) as a client inside the game world.\n\nFor more details on how it works, have a look at [Making 3D Interfaces for Python with Unity3D](https://medium.com/@tryexceptpass/user-interfaces-with-unity3d-and-python-eb2e7744518a)\n\n## Requirements\n* You'll need to install the Sofi package, available at the tryexceptpass/sofi repository.\n* To run the game world:\n  * If you have Unity3D already and want to run from there, use the project in the `engine` directory.\n  * If you don't, you can download the built world from the links below:\n    * [MacOS](https://s3.amazonaws.com/tryexceptpass/sofi3d.app.zip)\n    * [Windows](https://s3.amazonaws.com/tryexceptpass/sofi3d.exe.zip)\n    * [Linux](https://s3.amazonaws.com/tryexceptpass/sofi3d.x86.zip)\n* Update `server.py` with your twitter account credentials.\n\n## Execution\n1. Start the game world by running the executable you downloaded above or start it directly from Unity3D. This will wait for a websocket server at port 9000.\n2. Run the python code: `python server.py`. This will start the slide deck I used at PyCaribbean and start a twitter listener for #python which will spawn objects as tweets come in.\n\n## Disabling the slides\nIf you'd like to just watch the tweets roll in, disabling the slides is easy enough, just comment or remove any lines that call `displayslide()`. Please note that you could easily repurpose this function for other things along with the `onkeyboard()` callback.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryexceptpass%2Fsofi-unity3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftryexceptpass%2Fsofi-unity3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryexceptpass%2Fsofi-unity3d/lists"}