{"id":17846620,"url":"https://github.com/ovidner/staircase-optigurator","last_synced_at":"2026-05-15T21:03:50.629Z","repository":{"id":77889352,"uuid":"162507814","full_name":"ovidner/staircase-optigurator","owner":"ovidner","description":"An optimizing configurator for spiral staircases, using Onshape as an input method and OpenMDAO as optimization engine","archived":false,"fork":false,"pushed_at":"2018-12-29T21:40:48.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T15:43:11.578Z","etag":null,"topics":["flask","linkoping-university","onshape","openmdao","optimization"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ovidner.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":"2018-12-20T00:59:17.000Z","updated_at":"2020-08-17T14:16:27.000Z","dependencies_parsed_at":"2023-05-17T17:31:16.237Z","dependency_job_id":null,"html_url":"https://github.com/ovidner/staircase-optigurator","commit_stats":{"total_commits":20,"total_committers":1,"mean_commits":20.0,"dds":0.0,"last_synced_commit":"649a758b58328355c68503d149a0818f8aaf49e7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ovidner/staircase-optigurator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidner%2Fstaircase-optigurator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidner%2Fstaircase-optigurator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidner%2Fstaircase-optigurator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidner%2Fstaircase-optigurator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ovidner","download_url":"https://codeload.github.com/ovidner/staircase-optigurator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidner%2Fstaircase-optigurator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274563742,"owners_count":25308470,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"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":["flask","linkoping-university","onshape","openmdao","optimization"],"created_at":"2024-10-27T21:40:30.943Z","updated_at":"2026-05-15T21:03:45.590Z","avatar_url":"https://github.com/ovidner.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Staircase optigurator\n=====================\nThe Staircase optigurator is an optimizing configurator for spiral staircases. It utilizes [Flask](http://flask.pocoo.org) and [OpenMDAO](http://openmdao.org) in conjunction with [Onshape](https://www.onshape.com) to calculate and present pareto-optimal spiral staircase solutions to case-specific specifications. It was developed as part of a research project between [Linköping University](https://liu.se), [Weland AB](https://www.weland.se) and others.\n\nThis is strictly for experimental use.\n\n# Prerequisites\n* The application uses the Onshape feature available in https://cad.onshape.com/documents/d69f2c5f691ab246b4955287 as an input. Add the feature to your Onshape account.\n* You need to register an OAuth application at the Onshape developer portal to gain access to the Onshape API. See separate instructions.\n* To run this under (less un)realistic circumstances, you need some proprietary data in the `optigurator_data` folder. See separate instructions.\n\n# Setting up a development environment and starting the application server\n1. Make sure you have Python 3.7 and Pipenv installed on your computer. The procedure differs largely on different platforms.\n2. Clone this repository to your computer.\n3. If you have received data files from the authors, copy them into the data folder. If not, duplicate all `.example` files in the data folder and remove the `.example` part of their filename. Modify them accordingly.\n4. Start a command-line shell in the repository root and run `pipenv install --dev` followed by `pipenv run dev-server`.\n5. Navigate your browser to https://localhost:5000. Accept the HTTPS certificate or generate your own key and certificate (replace the `dev-https.(crt|key)` files).\n\n# Registering an Onshape OAuth application\nThis is not needed if you have received data/settings files from the authors.\n\n1. Go to the [corresponding page at the Onshape developer portal](https://dev-portal.onshape.com/oauthApps/createNew).\n2. Fill in the needed information:\n    * Name: _Whatever you want_\n    * Primary format: _Whatever you want_\n    * Summary: _Whatever you want_\n    * Redirect URLs:\n      * `https://localhost:5000/oauth/onshape/authorized`\n      * `https://127.0.0.1:5000/oauth/onshape/authorized`\n    * iframe URL: `https://localhost:5000`\n    * Supports collaboration: Yes\n    * Permissions:\n      * Application can read your profile information\n      * Application can read your documents\n3. Submit and note the client ID and secret. Add them accordingly to the `optigurator_data/settings.py` file.\n4. (optional) If you want to use the application from within Onshape (as a document tab/element), you also need to register a store entry for the OAuth application.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovidner%2Fstaircase-optigurator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovidner%2Fstaircase-optigurator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovidner%2Fstaircase-optigurator/lists"}