{"id":20602475,"url":"https://github.com/augustunderground/aces","last_synced_at":"2026-04-27T05:01:30.771Z","repository":{"id":112835412,"uuid":"408376049","full_name":"AugustUnderground/aces","owner":"AugustUnderground","description":null,"archived":false,"fork":false,"pushed_at":"2021-10-08T07:56:29.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-09T12:53:56.608Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AugustUnderground.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}},"created_at":"2021-09-20T09:05:47.000Z","updated_at":"2021-10-08T07:56:32.000Z","dependencies_parsed_at":"2023-05-31T09:45:32.344Z","dependency_job_id":null,"html_url":"https://github.com/AugustUnderground/aces","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AugustUnderground/aces","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustUnderground%2Faces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustUnderground%2Faces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustUnderground%2Faces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustUnderground%2Faces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AugustUnderground","download_url":"https://codeload.github.com/AugustUnderground/aces/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustUnderground%2Faces/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32323215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-16T09:13:57.971Z","updated_at":"2026-04-27T05:01:30.710Z","avatar_url":"https://github.com/AugustUnderground.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# REST API for AC²E\n\nREST API for\n[analog-circuit-library](https://gitlab-forschung.reutlingen-university.de/schweikm/analog-circuit-library).\nSimulate and characterize Operational Amplifiers from anywhere in the ~~world~~\nuniverse.\n\n## Installation\n\n### Dependencies\n\n- [analog-circuit-library](https://gitlab-forschung.reutlingen-university.de/schweikm/analog-circuit-library)\n- clojure \u003e= 1.10.3\n\n**Optional**: [curl](https://curl.se/), [jq](https://stedolan.github.io/jq/)\nand [gron](https://github.com/tomnomnom/gron)\nto send and receive from the command line.\n\n### Setup\n\nTo generate `pom.xml`:\n\n```bash\n$ lein install\n```\n\n## Getting Started\n\n```bash\n$ lein trampoline run --tech \u003ctech\u003e --ckt \u003cckt\u003e\n```\n\n**NOTE**: `trampoline` is required for graceful exit. (see \n[this answer](https://stackoverflow.com/a/10863953))\n\nIf all went well it should say:\n\n```bash\nServer started on Port XXXX\n```\n\nThen, in another terminal:\n\n```bash\n$ curl -X GET localhost:XXXX/rng/op1\n```\n\nThe POST request to `sim/op#` has to be of type `application/json`. If it's\nempty, the current state of the circuit will be simulated. These results are\n**not** cached on the server. Each request will be simulated again.\n\n## Usage\n\nThe CLI supports the following arguments:\n\n```bash\n$ lein run --tech \u003cTECH\u003e --ckt \u003cCKT\u003e [--sim \u003cSIM\u003e] [--op \u003cOP\u003e] [--port \u003cPORT\u003e]\n    where:\n        --tech \u003cTECH\u003e       Path to PDK/Technology\n        --ckt \u003cCKT\u003e         Path to op netlist and testbench\n        --sim \u003cSIM\u003e         Path to simultation directory, defaults to /tmp\n        --op \u003cOP\u003e           OpAmp ID: 1 - Miller Amplifier\n                                      2 - Symmetrical Amplifier\n        --port \u003cPORT\u003e       Port, defaults to 8888\n        --verbose           Print debug output\n```\n\n**NOTE:** At this point only list values are supported. So even if just one\nvalue is to be simulated, it should be in a singleton list.\n\nThe following will simulate the circuit for the three given sizing combinations\nand returns a JSON header with the corresponding simulation results.\n\n## Routes\n\nThree routes are supported as of now.\n\n### Available Sizing Parameters\n\nTo get a list of available parameters send a `GET` request to `params/op#`:\n\n```bash\n$ curl -X GET localhost:XXXX/params/op2 | jq\n```\n\nAll of these can be used in a `sim` request body.\n\n### Available Performances\n\nTo get a list of available performance parameters send a `GET` request to\n`perfs/op#`:\n\n```bash\n$ curl -X GET localhost:XXXX/perfs/op2 | jq\n```\n\nThese are the keys of the return body of a `sim` request.\n\n### Random Sizing\n\nTo get random and legal sizing parameters send a `GET` request to `rng/op#`:\n\n```bash\n$ curl -X GET localhost:XXXX/rng/op1 | jq\n```\n\n### Initial Sizing\n\nTo get a curated initial sizing send a `GET` request to `init/op#`:\n\n```bash\n$ curl -X GET localhost:XXXX/init/op2 | jq\n```\n\n### Simulation\n\nTo simulate the current netlist send an **empty** `POST` request to `sim/op#`:\n\n```bash\n$ curl -X POST localhost:XXXX/sim/op2 \\\n    -H 'Content-Type: application/json' -d '{}' | jq\n```\n\nTo simulate a different set of parameters send them as JSON:\n\n```bash\n$ curl -X POST localhost:8888/sim/op1 -H 'Content-Type: application/json' \\\n       -d '{\"Wd\": [2e-6, 3e-6, 4e-6], \"Ld\": [2e-6, 3e-6, 4e-6]}' | jq\n```\n\nThe lists of values for each parameter should be equal, for this example 3\nsimulations would be run with the corresponding sizing and return a JSON object\nwhere each performance parameter has a list of equal length (3 in this case).\n\n## License\n\nCopyright (c) 2021 Yannick Uhlmann\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice (including the next\nparagraph) shall be included in all copies or substantial portions of the\nSoftware.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustunderground%2Faces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faugustunderground%2Faces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustunderground%2Faces/lists"}