{"id":16278167,"url":"https://github.com/valiantlynx/tenniscale","last_synced_at":"2026-02-07T01:31:15.951Z","repository":{"id":254433111,"uuid":"846509147","full_name":"valiantlynx/TenniScale","owner":"valiantlynx","description":"Some sweds want to measure their height in a more fun way. they landed on using tenis ball. - i have to find some novel way to measure their height and use fortuna model to make a model to measure theire heights:","archived":false,"fork":false,"pushed_at":"2024-10-20T12:41:48.000Z","size":8436,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T02:12:05.739Z","etag":null,"topics":["ai","height","tennis"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valiantlynx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"github":["valiantlynx"],"patreon":"valiantlynx","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"polar":null,"custom":null}},"created_at":"2024-08-23T11:09:19.000Z","updated_at":"2024-12-14T12:04:55.000Z","dependencies_parsed_at":"2024-09-05T13:58:03.856Z","dependency_job_id":"ce445743-fd2e-4ce2-bcf9-a22d5ca168f1","html_url":"https://github.com/valiantlynx/TenniScale","commit_stats":{"total_commits":29,"total_committers":2,"mean_commits":14.5,"dds":0.4137931034482759,"last_synced_commit":"87163a2942d18ce03a230b59c726042ee339b479"},"previous_names":["valiantlynx/tenniscale"],"tags_count":0,"template":false,"template_full_name":"mythrantic/python-development-environment","purl":"pkg:github/valiantlynx/TenniScale","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valiantlynx%2FTenniScale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valiantlynx%2FTenniScale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valiantlynx%2FTenniScale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valiantlynx%2FTenniScale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valiantlynx","download_url":"https://codeload.github.com/valiantlynx/TenniScale/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valiantlynx%2FTenniScale/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265570982,"owners_count":23789993,"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","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":["ai","height","tennis"],"created_at":"2024-10-10T18:57:32.684Z","updated_at":"2026-02-07T01:31:15.944Z","avatar_url":"https://github.com/valiantlynx.png","language":"Jupyter Notebook","funding_links":["https://github.com/sponsors/valiantlynx","https://patreon.com/valiantlynx"],"categories":[],"sub_categories":[],"readme":"# TenniScale\n\nWelcome to **TenniScale**! A fun and innovative way to measure height using a tennis ball. This project uses various techniques to measure height and applies the Fortuna model to ensure accuracy.\n\n\u003ccenter\u003e\n\u003cimg src=\"./assets/logo.jpg\" alt=\"TenniScale Logo\" width=\"300\"\u003e\n\u003c/center\u003e \n\n## Project Overview\n\nThe idea for TenniScale came from a group of Swedes who wanted to measure their height in a more entertaining and engaging way. The concept revolves around using a tennis ball and developing a novel approach to accurately\nmeasure height. By leveraging the Fortuna model, we aim to refine and enhance the measurement accuracy despite the inherent challenges.\n\n![site](./assets/screenshot.png)\n\n## Materials\n\nTo get started with TenniScale, you'll need the following materials:\n- A tennis ball\n- A ruler\n\n## Measuring Techniques\n\nWe explored several techniques to measure height using a tennis ball:\n\n1. **Measuring from when it leaves the ball:**\n   - This method involves starting the measurement as soon as the ball is released. However, it includes a lot of human error.\n\n2. **Measuring from when acceleration is 0:**\n   - In this approach, the ball is not thrown but released gently. A more accurate method would be to throw the ball into the air and measure from the point where acceleration is zero. The challenge here is determining the exact height at that point.\n\n3. **Time till the ball stops bouncing:**\n   - By timing the duration until the ball stops bouncing, we can get multiple data points. This method is somewhat unclean but provides at least four points for analysis.\n\n4. **Time between every bounce:**\n   - This technique involves measuring the time taken between each bounce as laps, providing additional data for refining the height measurement.\n\n## Measure Points\n\nFor calibration and testing, the following height points are used:\n- 200 cm\n- 180 cm\n- 160 cm\n- 140 cm\n- 120 cm\n- 100 cm\n- 80 cm\n- 60 cm\n- 40 cm\n- 20 cm\n\n## Getting Started\n\nTo get started with TenniScale, you can use Python. Here's the boilerplate code to set up your environment:\n\n```python\nfrom typing import Union\nfrom fastapi import FastAPI\n\napp = FastAPI()\n\nimport debugpy\ndebugpy.listen((\"0.0.0.0\", 5678))\n\n@app.get(\"/\")\ndef read_root():\n    return {\"Hello\": \"World ass wiper\"}\n\n@app.get(\"/items/{item_id}\")\ndef read_item(item_id: int, q: Union[str, None] = None):\n    return {\"item_id\": item_id, \"q\": q}\n```\n\nThis code is set up in a devcontainer, but you can also run it in a virtual environment or directly on your host system.\n\n## Repository\n\nCheck out the TenniScale project on GitHub: [TenniScale](https://github.com/valiantlynx/TenniScale.git)\n\n---\n\nFeel free to contribute to the project, report issues, or suggest new features!\n\n---\n\nHappy measuring with TenniScale!\n\n### TODOs\n\n- [x] **Create the Logo:** Use the concept provided to design a logo or hire a designer to create it for you.\n- [x] **Host the Logo Image:** Once you have the logo, host it on a platform like GitHub, Imgur, or your project repository and replace the placeholder link in the README.\n- [x] **Finalize and Push the README:** Save the README file as `README.md` in your project root directory and push it to your GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaliantlynx%2Ftenniscale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaliantlynx%2Ftenniscale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaliantlynx%2Ftenniscale/lists"}