{"id":37146493,"url":"https://github.com/byucamacholab/simphony","last_synced_at":"2026-01-14T17:03:12.148Z","repository":{"id":38085328,"uuid":"189314119","full_name":"BYUCamachoLab/simphony","owner":"BYUCamachoLab","description":"A simulator for photonic integrated circuits.","archived":false,"fork":false,"pushed_at":"2025-11-26T03:13:44.000Z","size":38339,"stargazers_count":143,"open_issues_count":14,"forks_count":38,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-11-29T05:43:18.087Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://simphonyphotonics.rtfd.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BYUCamachoLab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-05-29T23:44:22.000Z","updated_at":"2025-11-19T08:47:29.000Z","dependencies_parsed_at":"2023-10-17T05:08:24.900Z","dependency_job_id":"68077e23-47fb-4cf7-8590-bd8a26d49714","html_url":"https://github.com/BYUCamachoLab/simphony","commit_stats":{"total_commits":956,"total_committers":14,"mean_commits":68.28571428571429,"dds":0.5313807531380753,"last_synced_commit":"9a63d18a827a2c0c89861ce1bee5538706b412ba"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/BYUCamachoLab/simphony","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BYUCamachoLab%2Fsimphony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BYUCamachoLab%2Fsimphony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BYUCamachoLab%2Fsimphony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BYUCamachoLab%2Fsimphony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BYUCamachoLab","download_url":"https://codeload.github.com/BYUCamachoLab/simphony/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BYUCamachoLab%2Fsimphony/sbom","scorecard":{"id":19634,"data":{"date":"2025-08-11","repo":{"name":"github.com/BYUCamachoLab/simphony","commit":"88ec4864a29fdf70b21f3b629005f608b1aed77a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.9,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":1,"reason":"2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build-and-test.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:10"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-and-test.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/BYUCamachoLab/simphony/build-and-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-and-test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/BYUCamachoLab/simphony/build-and-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/BYUCamachoLab/simphony/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/BYUCamachoLab/simphony/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/BYUCamachoLab/simphony/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/BYUCamachoLab/simphony/release.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build-and-test.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/build-and-test.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:23","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-14T16:30:08.197Z","repository_id":38085328,"created_at":"2025-08-14T16:30:08.198Z","updated_at":"2025-08-14T16:30:08.198Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28427182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"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":[],"created_at":"2026-01-14T17:03:11.460Z","updated_at":"2026-01-14T17:03:12.139Z","avatar_url":"https://github.com/BYUCamachoLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simphony: A Simulator for Photonic Circuits\n\n\u003cdiv style=\"text-align: center\"\u003e\n\u003cimg alt=\"Development version\" src=\"https://img.shields.io/badge/master-v0.7.3-informational\"\u003e\n\u003ca href=\"https://pypi.python.org/pypi/simphony\"\u003e\u003cimg alt=\"PyPI Version\" src=\"https://img.shields.io/pypi/v/simphony.svg\"\u003e\u003c/a\u003e\n\u003cimg alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/simphony\"\u003e\n\u003ca href=\"https://github.com/BYUCamachoLab/simphony/actions\"\u003e\u003cimg alt=\"Build Status\" src=\"https://github.com/BYUCamachoLab/simphony/actions/workflows/build-and-test.yml/badge.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/pre-commit/pre-commit\"\u003e\u003cimg src=\"https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white\" alt=\"pre-commit\" style=\"max-width:100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://simphonyphotonics.readthedocs.io/\"\u003e\u003cimg alt=\"Documentation Status\" src=\"https://readthedocs.org/projects/simphonyphotonics/badge/?version=latest\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/simphony/\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/pypi/l/simphony.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/BYUCamachoLab/simphony/commits/master\"\u003e\u003cimg alt=\"Latest Commit\" src=\"https://img.shields.io/github/last-commit/BYUCamachoLab/simphony.svg\"\u003e\u003c/a\u003e\n\n\u003cimg src=\"https://github.com/BYUCamachoLab/simphony/blob/master/docs/simphony_logo.png?raw=true\" style=\"max-width: 500px\" alt=\"Simphony logo\"\u003e\n\u003c/div\u003e\n\nSimphony, a simulator for photonic circuits, is a fundamental package for designing and simulating photonic integrated circuits with Python.\n\n**Key Features:**\n\n- Free and open-source software provided under the MIT License\n- Completely scriptable using Python 3.\n- Cross-platform: runs on Windows, MacOS, and Linux.\n- Subnetwork growth routines\n- A simple, extensible framework for defining photonic component compact models.\n- A SPICE-like method for defining photonic circuits.\n- Complex simulation capabilities.\n- Included model libraries from SiEPIC and SiPANN.\n\nDeveloped by [CamachoLab](https://camacholab.byu.edu/) at\n[Brigham Young University](https://www.byu.edu/).\n\n## Installation\n\nSimphony can be installed via pip for Python 3.8+:\n\n```\npython3 -m pip install simphony\n```\n\n## Documentation\n\nThe documentation is hosted [online](https://simphonyphotonics.readthedocs.io/en/latest/).\n\n## Bibtex citation\n\n```\n@article{DBLP:journals/corr/abs-2009-05146,\n  author    = {Sequoia Ploeg and\n               Hyrum Gunther and\n               Ryan M. Camacho},\n  title     = {Simphony: An open-source photonic integrated circuit simulation framework},\n  journal   = {CoRR},\n  volume    = {abs/2009.05146},\n  year      = {2020},\n  url       = {https://arxiv.org/abs/2009.05146},\n  eprinttype = {arXiv},\n  eprint    = {2009.05146},\n  timestamp = {Thu, 17 Sep 2020 12:49:52 +0200},\n  biburl    = {https://dblp.org/rec/journals/corr/abs-2009-05146.bib},\n  bibsource = {dblp computer science bibliography, https://dblp.org}\n}\n```\n\n## Development\n\nWe welcome contributions to Simphony in the form of bug reports, feature\nrequests, and pull requests. Please see the [contributing\nguide](https://simphonyphotonics.readthedocs.io/en/stable/dev/contributing.html).\n\nTo develop locally, clone the repository and run the ``make`` commands to set\nup your development environment.\n\n```bash\ngit clone https://github.com/BYUCamachoLab/simphony.git\npython3 -m venv env   # or use your preferred virtual environment tool\nsource env/bin/activate\nmake install\n```\n\nWe use pre-commit to maintain code quality. The hooks are automatically \ninstalled when invoking the make targets. Pre-commit will now run on every\ncommit. If it makes any modifications, the commit will fail and you'll have\nto restage the changes before continuing with the commit.\n\nIf you truly, desperately need to skip pre-commit in one instance, you can use:\n\n```bash\ngit commit --no-verify -m \"Commit message\"\n```\n\nPleasee don't make a habit of it.\n\nThere are a few other useful targets in the Makefile:\n\n- ``make test``: Run the unit tests\n- ``make doc``: Build the documentation\n\n## Distribution\n\nSimphony is available on PyPI and can be installed via pip:\n\n```\npython3 -m pip install simphony\n```\n\n## License\n\nSimphony is licensed under the MIT license. See the [LICENSE](LICENSE) file for\nmore details.\n\n## Releasing (Danger Zone)\n\n**Only the project maintainer should create releases.**\n\nA note on the development cycle. The ``master`` branch is the \"latest\" branch\nwith a version of the project that *always works*. Features and bug fixes are\ndeveloped in separate branches and then merged into master when ready.\n\nWhen preparing for a new release, it's appropriate to increment the version\nnumber in advance of the release and before all the changes are merged in. You \ncan start the next version and increment the version number by running:\n\n```\nmake major\nmake minor\nmake patch\n```\n\nThis project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),\nwhich means that the version number is incremented according to the following\nrules:\n\n* MAJOR version when you make incompatible API changes,\n* MINOR version when you add functionality in a backwards compatible manner, and\n* PATCH version when you make backwards compatible bug fixes.\n\nThere are also software lifecycle parts to the version number:\n\n* BUILD version is for multiple versions within a release (i.e. \"rc1\", \"rc2\", etc.)\n* RELEASE version cycles through \"rc(n)\" and then empty string for final release.\n\nA version with a \"rc\" number indicates it is not a final release. When you're\nready to create the final release, make sure you've filled out the\ncorresponding entry in the [CHANGELOG](CHANGELOG.md). Follow the format of\nprevious recent entries. Make sure you have a clean working tree (git). Then,\nrun:\n\n```\nbumpversion release\nmake release\n```\n\nThis will remove the \"rc\" number, tag the commit, push the tag to git, upload\na build to PyPI, and publish the documentation to ReadTheDocs. Because this\nprocess is irreversible and version numbers cannot be reclaimed from PyPI, make\nsure all tests are passing and the documentation is up to date before running\nthis command.\n\nA standard version number progression might look something like this:\n\n* 2.0.1\n* 2.0.2rc0\n* 2.0.2rc1\n* 2.0.2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyucamacholab%2Fsimphony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyucamacholab%2Fsimphony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyucamacholab%2Fsimphony/lists"}