{"id":642705,"name":"tangram, an open platform for modular, real-time air traffic management research","description":"tangram, an open platform for modular, real-time air traffic management research - Published in JOSS (2025)","url":"https://github.com/open-aviation/tangram","last_synced_at":"2025-11-01T13:00:50.915Z","repository":{"id":239773547,"uuid":"611766072","full_name":"open-aviation/tangram","owner":"open-aviation","description":"An open platform for modular, real-time aviation research","archived":false,"fork":false,"pushed_at":"2025-10-20T15:21:58.000Z","size":17999,"stargazers_count":19,"open_issues_count":2,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-20T17:23:44.138Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://mode-s.org/tangram/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-aviation.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,"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":"2023-03-09T13:58:41.000Z","updated_at":"2025-10-20T15:13:42.000Z","dependencies_parsed_at":"2024-06-16T14:39:43.557Z","dependency_job_id":"7e9bba30-ee75-47ff-9c0f-5949b0828d55","html_url":"https://github.com/open-aviation/tangram","commit_stats":null,"previous_names":["open-aviation/tangram"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/open-aviation/tangram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-aviation","download_url":"https://codeload.github.com/open-aviation/tangram/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282145350,"owners_count":26621741,"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-11-01T02:00:06.759Z","response_time":61,"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"}},"owner":{"login":"open-aviation","name":"Journal of Open Aviation Science","uuid":"104085040","kind":"organization","description":"","email":null,"website":"https://journals.open.tudelft.nl/joas","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/104085040?v=4","repositories_count":1,"last_synced_at":"2023-03-02T07:12:34.291Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/open-aviation","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-03-02T07:12:34.292Z","updated_at":"2023-03-02T07:12:34.292Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-aviation","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-aviation/repositories"},"packages":[],"commits":{"message":"Repository syncing started."},"issues_stats":{"full_name":"open-aviation/tangram","html_url":"https://github.com/open-aviation/tangram","last_synced_at":"2025-10-08T10:07:36.528Z","status":null,"issues_count":17,"pull_requests_count":24,"avg_time_to_close_issue":6952569.0,"avg_time_to_close_pull_request":1509488.3529411764,"issues_closed_count":8,"pull_requests_closed_count":17,"pull_request_authors_count":4,"issue_authors_count":4,"avg_comments_per_issue":0.47058823529411764,"avg_comments_per_pull_request":1.1666666666666667,"merged_pull_requests_count":13,"bot_issues_count":0,"bot_pull_requests_count":4,"past_year_issues_count":9,"past_year_pull_requests_count":17,"past_year_avg_time_to_close_issue":4511119.75,"past_year_avg_time_to_close_pull_request":606446.0909090909,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":11,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.6666666666666666,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":4,"past_year_merged_pull_requests_count":9,"created_at":"2025-08-29T17:34:56.567Z","updated_at":"2025-10-08T10:07:36.529Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-aviation%2Ftangram/issues","issue_labels_count":{"enhancement":4,"bug":4},"pull_request_labels_count":{"dependencies":4,"github_actions":4,"enhancement":1},"issue_author_associations_count":{"CONTRIBUTOR":13,"COLLABORATOR":3,"NONE":1},"pull_request_author_associations_count":{"COLLABORATOR":12,"CONTRIBUTOR":11,"NONE":1},"issue_authors":{"xoolive":13,"abc8747":2,"emctoo":1,"kx1t":1},"pull_request_authors":{"emctoo":9,"xoolive":8,"dependabot[bot]":4,"abc8747":3},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-11-01T00:00:09.245Z","repositories_count":11294269,"issues_count":35102966,"pull_requests_count":113968606,"authors_count":11042373,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"bug":1},"past_year_pull_request_labels_count":{"dependencies":4,"github_actions":4},"past_year_issue_author_associations_count":{"CONTRIBUTOR":6,"COLLABORATOR":3},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":10,"COLLABORATOR":6,"NONE":1},"past_year_issue_authors":{"xoolive":6,"abc8747":2,"emctoo":1},"past_year_pull_request_authors":{"xoolive":7,"dependabot[bot]":4,"emctoo":3,"abc8747":3},"maintainers":[{"login":"emctoo","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/emctoo"},{"login":"abc8747","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abc8747"}],"active_maintainers":[{"login":"abc8747","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abc8747"},{"login":"emctoo","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/emctoo"}]},"events":{"total":{"IssuesEvent":17,"WatchEvent":10,"DeleteEvent":20,"MemberEvent":1,"IssueCommentEvent":25,"PushEvent":154,"PullRequestReviewEvent":3,"PullRequestEvent":31,"ForkEvent":2,"CreateEvent":17},"last_year":{"IssuesEvent":17,"WatchEvent":10,"DeleteEvent":20,"MemberEvent":1,"IssueCommentEvent":25,"PushEvent":153,"PullRequestReviewEvent":3,"PullRequestEvent":31,"ForkEvent":2,"CreateEvent":17}},"keywords":[],"dependencies":[{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2024-05-15T21:52:18.280Z","updated_at":"2024-05-15T21:52:18.280Z","repository_link":"https://github.com/open-aviation/tangram/blob/main/Dockerfile","dependencies":[{"id":18090573784,"package_name":"python","ecosystem":"docker","requirements":"3.11-slim","direct":true,"kind":"build","optional":false},{"id":18090573785,"package_name":"python-poetry-base","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2024-05-15T21:52:18.687Z","updated_at":"2024-05-15T21:52:18.687Z","repository_link":"https://github.com/open-aviation/tangram/blob/main/poetry.lock","dependencies":[{"id":18090575433,"package_name":"annotated-types","ecosystem":"pypi","requirements":"0.6.0","direct":false,"kind":"runtime","optional":false},{"id":18090575434,"package_name":"anyio","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":18090575435,"package_name":"appdirs","ecosystem":"pypi","requirements":"1.4.4","direct":false,"kind":"runtime","optional":false},{"id":18090575436,"package_name":"broadcaster","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":18090575461,"package_name":"certifi","ecosystem":"pypi","requirements":"2024.2.2","direct":false,"kind":"runtime","optional":false},{"id":18090575462,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.3.2","direct":false,"kind":"runtime","optional":false},{"id":18090575463,"package_name":"click","ecosystem":"pypi","requirements":"8.1.7","direct":false,"kind":"runtime","optional":false},{"id":18090575464,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":18090575465,"package_name":"eval-type-backport","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":18090575466,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":18090575467,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.110.3","direct":false,"kind":"runtime","optional":false},{"id":18090575468,"package_name":"h11","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":18090575469,"package_name":"httpcore","ecosystem":"pypi","requirements":"1.0.5","direct":false,"kind":"runtime","optional":false},{"id":18090575470,"package_name":"httpx","ecosystem":"pypi","requirements":"0.27.0","direct":false,"kind":"runtime","optional":false},{"id":18090575471,"package_name":"idna","ecosystem":"pypi","requirements":"3.7","direct":false,"kind":"runtime","optional":false},{"id":18090575472,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.4","direct":false,"kind":"runtime","optional":false},{"id":18090575473,"package_name":"markupsafe","ecosystem":"pypi","requirements":"2.1.5","direct":false,"kind":"runtime","optional":false},{"id":18090575474,"package_name":"mypy","ecosystem":"pypi","requirements":"1.10.0","direct":false,"kind":"runtime","optional":false},{"id":18090575475,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":18090575476,"package_name":"numpy","ecosystem":"pypi","requirements":"1.26.4","direct":false,"kind":"runtime","optional":false},{"id":18090575477,"package_name":"pandas","ecosystem":"pypi","requirements":"2.2.2","direct":false,"kind":"runtime","optional":false},{"id":18090575478,"package_name":"pydantic","ecosystem":"pypi","requirements":"2.7.1","direct":false,"kind":"runtime","optional":false},{"id":18090575479,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"2.18.2","direct":false,"kind":"runtime","optional":false},{"id":18090575480,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":18090575481,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":18090575482,"package_name":"pytz","ecosystem":"pypi","requirements":"2024.1","direct":false,"kind":"runtime","optional":false},{"id":18090575483,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.1","direct":false,"kind":"runtime","optional":false},{"id":18090575484,"package_name":"requests","ecosystem":"pypi","requirements":"2.31.0","direct":false,"kind":"runtime","optional":false},{"id":18090575485,"package_name":"ruff","ecosystem":"pypi","requirements":"0.4.3","direct":false,"kind":"runtime","optional":false},{"id":18090575486,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":18090575487,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":18090575488,"package_name":"starlette","ecosystem":"pypi","requirements":"0.37.2","direct":false,"kind":"runtime","optional":false},{"id":18090575489,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":18090575490,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.11.0","direct":false,"kind":"runtime","optional":false},{"id":18090575491,"package_name":"tzdata","ecosystem":"pypi","requirements":"2024.1","direct":false,"kind":"runtime","optional":false},{"id":18090575492,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":18090575493,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.29.0","direct":false,"kind":"runtime","optional":false},{"id":18090575494,"package_name":"websockets","ecosystem":"pypi","requirements":"12.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-05-15T21:52:19.922Z","updated_at":"2024-05-15T21:52:19.922Z","repository_link":"https://github.com/open-aviation/tangram/blob/main/pyproject.toml","dependencies":[{"id":18090575496,"package_name":"python","ecosystem":"pypi","requirements":"\u003e=3.9,\u003c3.13","direct":true,"kind":"runtime","optional":false},{"id":18090575497,"package_name":"appdirs","ecosystem":"pypi","requirements":"^1.4.4","direct":true,"kind":"runtime","optional":false},{"id":18090575498,"package_name":"fastapi","ecosystem":"pypi","requirements":"^0.110.1","direct":true,"kind":"runtime","optional":false},{"id":18090575499,"package_name":"uvicorn","ecosystem":"pypi","requirements":"^0.29.0","direct":true,"kind":"runtime","optional":false},{"id":18090575500,"package_name":"broadcaster","ecosystem":"pypi","requirements":"^0.2.0","direct":true,"kind":"runtime","optional":false},{"id":18090575501,"package_name":"websockets","ecosystem":"pypi","requirements":"^12.0","direct":true,"kind":"runtime","optional":false},{"id":18090575502,"package_name":"requests","ecosystem":"pypi","requirements":"^2.31.0","direct":true,"kind":"runtime","optional":false},{"id":18090575503,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"^1.0.1","direct":true,"kind":"runtime","optional":false},{"id":18090575504,"package_name":"pyyaml","ecosystem":"pypi","requirements":"^6.0.1","direct":true,"kind":"runtime","optional":false},{"id":18090575505,"package_name":"httpx","ecosystem":"pypi","requirements":"^0.27.0","direct":true,"kind":"runtime","optional":false},{"id":18090575506,"package_name":"pandas","ecosystem":"pypi","requirements":"^2.2.2","direct":true,"kind":"runtime","optional":false},{"id":18090575507,"package_name":"jinja2","ecosystem":"pypi","requirements":"^3.1.4","direct":true,"kind":"runtime","optional":false},{"id":18090575508,"package_name":"eval-type-backport","ecosystem":"pypi","requirements":"^0.2.0","direct":true,"kind":"runtime","optional":false},{"id":18090575509,"package_name":"mypy","ecosystem":"pypi","requirements":"\u003e=0.950","direct":true,"kind":"develop","optional":false},{"id":18090575510,"package_name":"ruff","ecosystem":"pypi","requirements":"^0.4.3","direct":true,"kind":"develop","optional":false}]}],"score":null,"created_at":"2025-11-01T13:00:08.748Z","updated_at":"2025-11-01T13:00:50.976Z","avatar_url":"https://github.com/open-aviation.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/642705","html_url":"https://science.ecosyste.ms/projects/642705"}