{"id":42912790,"url":"https://github.com/wfvining/sx","last_synced_at":"2026-01-30T16:59:12.669Z","repository":{"id":177632439,"uuid":"657611360","full_name":"wfvining/sx","owner":"wfvining","description":"Simulation engine for elixir","archived":false,"fork":false,"pushed_at":"2023-08-19T14:16:03.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-11T17:39:37.568Z","etag":null,"topics":["elixir","simulation","simulation-engine","simulation-framework"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wfvining.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-06-23T12:46:30.000Z","updated_at":"2023-11-22T05:31:58.000Z","dependencies_parsed_at":"2023-09-30T17:49:50.430Z","dependency_job_id":null,"html_url":"https://github.com/wfvining/sx","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"d79172047912ea3e62e620d5aef920eb96d9bb84"},"previous_names":["wfvining/sx"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/wfvining/sx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fsx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fsx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fsx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fsx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wfvining","download_url":"https://codeload.github.com/wfvining/sx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fsx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28915942,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T16:37:38.804Z","status":"ssl_error","status_checked_at":"2026-01-30T16:37:37.878Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["elixir","simulation","simulation-engine","simulation-framework"],"created_at":"2026-01-30T16:59:11.998Z","updated_at":"2026-01-30T16:59:12.661Z","avatar_url":"https://github.com/wfvining.png","language":"Elixir","readme":"# Sx\n\nSimulation engines based on *Building Software for Simulation* by James Nutaro.\n\n## Installation\n\nNo good installation mechanism right now - just load the modules.\n\n## Usage\n\nThere are a number of protocols that need to be implemented for each\nmodel, depending on its type (`Sx.Model`, `Sx.Network`, `Sx.Atomic`)\nthen the top-level network can be passed to `Sx.Simulator.start_link/1`\nand advanced through time with `Sx.Simulator.compute_next_state/2`.\n\nThe logic-machine example from the book is implemented in\n`examples/logic.ex`\n\nA cellular automata example is implemented in `examples/ca.ex`.\n\n```\n$ iex -S mix\niex(1)\u003e c(\"examples/logic.ex\")\n\n[LogicListener, Memory, N1, N2, Sim, Sx.Atomic.Memory, Sx.Atomic.Xor,\n Sx.Model.Memory, Sx.Model.N1, Sx.Model.N2, Sx.Model.Xor, Sx.Network.N1,\n Sx.Network.N2, Xor]\niex(2)\u003e s = Sim.new()\n#PID\u003c0.23839.3\u003e\niex(3)\u003e Sim.run(s)\n\nx₁ \u003e 1\nx₂ \u003e 0\nxx M0 C0        1 0     yy M1 C0-3      0 0 1\nx₁ \u003e 1\nx₂ \u003e 0\nxx M1 C3        1 0     yy M2 C3-6      1 1 0\nx₁ \u003e 1\nx₂ \u003e 0\nxx M2 C6        1 0     yy M3 C6-9      0 0 1\nx₁ \u003e 1\nx₂ \u003e 0\nxx M3 C9        1 0     yy M4 C9-12     1 1 0\nx₁ \u003e 1\nx₂ \u003e 0\nxx M4 C12       1 0     yy M5 C12-15    0 0 1\nx₁ \u003e 1\nx₂ \u003e 0\nxx M5 C15       1 0     yy M6 C15-18    1 1 0\nx₁ \u003e 1\nx₂ \u003e 0\nxx M6 C18       1 0     yy M7 C18-21    0 0 1\nx₁ \u003e 0\nx₂ \u003e 0\nxx M7 C21       0 0     yy M8 C21-24    1 1 1\nx₁ \u003e 0\nx₂ \u003e 0\nxx M8 C24       0 0     yy M9 C24-27    1 1 1\nx₁ \u003e 1\nx₂ \u003e 0\nxx M9 C27       1 0     yy M10 C27-30   1 1 0\nx₁ \u003e 1\nx₂ \u003e 0\nxx M10 C30      1 0     yy M11 C30-33   0 0 1\nx₁ \u003e 1\nx₂ \u003e 0\nxx M11 C33      1 0     yy M12 C33-36   1 1 0\nx₁ \u003e 0\nx₂ \u003e 0\nxx M12 C36      0 0     yy M13 C36-39   0 0 0\nx₁ \u003e 0\nx₂ \u003e 0\nxx M13 C39      0 0     yy M14 C39-42   0 0 0\nx₁ \u003e q\n:quit\niex(4)\u003e\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwfvining%2Fsx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwfvining%2Fsx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwfvining%2Fsx/lists"}