{"id":15669914,"url":"https://github.com/alexgustafsson/mindstorms-catapult","last_synced_at":"2026-04-29T12:35:52.249Z","repository":{"id":83002399,"uuid":"224834459","full_name":"AlexGustafsson/mindstorms-catapult","owner":"AlexGustafsson","description":"A very strong and robust design for a fully automatic LEGO catapult","archived":false,"fork":false,"pushed_at":"2021-07-14T14:20:59.000Z","size":21431,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-19T07:23:44.514Z","etag":null,"topics":["ev3","lego","lego-mindstorms","leocad","mindstorms","robotics"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexGustafsson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2019-11-29T10:44:42.000Z","updated_at":"2023-11-05T14:19:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"a5a16561-a80d-4f4d-91c0-29ed16ac29d1","html_url":"https://github.com/AlexGustafsson/mindstorms-catapult","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexGustafsson%2Fmindstorms-catapult","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexGustafsson%2Fmindstorms-catapult/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexGustafsson%2Fmindstorms-catapult/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexGustafsson%2Fmindstorms-catapult/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexGustafsson","download_url":"https://codeload.github.com/AlexGustafsson/mindstorms-catapult/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243230101,"owners_count":20257644,"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":["ev3","lego","lego-mindstorms","leocad","mindstorms","robotics"],"created_at":"2024-10-03T14:41:40.703Z","updated_at":"2025-12-25T12:18:34.830Z","avatar_url":"https://github.com/AlexGustafsson.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mindstorms Catapult\n### A very strong and robust design for a fully automatic LEGO catapult\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Preview\" src=\"renders/preview.gif\"\u003e\n\u003c/p\u003e\n\n_Note: A high resolution version of the GIF is available in the renders directory._\n\n__Many thanks to [Marcus Lenander](https://github.com/MarcusLenander) for helping create the design!__\n\n### Setting up\n\n##### Building\n\nThe file `catapult.mpd` contains a 3D model created in [LeoCAD](http://leocad.org). Open it using LeoCAD and use it as a reference when building. One can also open one of either `catapult.3ds` or `catapult.dae` as a reference.\n\nAfter the catapult has been built, 6-8 rubber bands or springs can be added to make the catapult function. A string between the base wheel and the arm also needs to be attached.\n\n##### Programming\n\nAn example class built around the catapult can be found in `catapult.py`. This class assumes that an EV3 brick running the official micropython runtime is used to power the catapult.\n\n```Python\nfrom pybricks.parameters import (SoundFile, Color, Port)\n\nfrom catapult import Catapult\n\ncatapult = Catapult(Port.A, Port.B)\ncatapult.reset()\n\ncatapult.safe_lock()\ncatapult.retract(100)\ncatapult.unlock()\n```\n\nNote that the catapult arm is very strong and may damage itself if used incorrectly. Read through the provided class and always be ready to stop the execution of the program.\n\n### Renders\n\n![Hero](renders/hero.png)\n\n![Hero](renders/rib.png)\n\n![Hero](renders/base.png)\n\n![Hero](renders/base2.png)\n\n![Hero](renders/actuator.png)\n\n### Contributing\n\nAny contribution is welcome. If you're not able to code it yourself, perhaps someone else is - so post an issue if there's anything on your mind.\n\n### Disclaimer\n\n_Although the project is very capable, it is not built with production in mind. Therefore there might be complications when trying to use the catapult for large-scale projects meant for the public. The project was created to easily throw projectiles in a strong and automated way and as such it might not promote best practices nor be performant._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexgustafsson%2Fmindstorms-catapult","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexgustafsson%2Fmindstorms-catapult","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexgustafsson%2Fmindstorms-catapult/lists"}