{"id":19848252,"url":"https://github.com/omrawaley/ab-particles","last_synced_at":"2026-05-11T21:31:59.132Z","repository":{"id":174220639,"uuid":"651931853","full_name":"omrawaley/AB-Particles","owner":"omrawaley","description":"This is a particle system I designed for the 8-bit gaming platform, the Arduboy. However, it can be ported to other platforms with ease.","archived":false,"fork":false,"pushed_at":"2023-06-18T13:30:06.000Z","size":310,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T12:46:44.871Z","etag":null,"topics":["arduboy","arduino","cpp","particle-physics","particle-system","particles"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omrawaley.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}},"created_at":"2023-06-10T14:37:06.000Z","updated_at":"2023-12-12T23:28:24.000Z","dependencies_parsed_at":"2023-07-08T13:46:18.437Z","dependency_job_id":null,"html_url":"https://github.com/omrawaley/AB-Particles","commit_stats":null,"previous_names":["omrawaley/ab-particles-particle-system","omrawaley/ab-particles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omrawaley%2FAB-Particles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omrawaley%2FAB-Particles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omrawaley%2FAB-Particles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omrawaley%2FAB-Particles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omrawaley","download_url":"https://codeload.github.com/omrawaley/AB-Particles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241226812,"owners_count":19930487,"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":["arduboy","arduino","cpp","particle-physics","particle-system","particles"],"created_at":"2024-11-12T13:16:42.342Z","updated_at":"2026-05-11T21:31:59.061Z","avatar_url":"https://github.com/omrawaley.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AB-Particles Particle System\n\n**V1.1.0 now out with new settings and features.**\n\nAB-Particles is a particle system I designed for the 8-bit gaming platform, the [Arduboy](https://www.arduboy.com/). However, it can be ported to other platforms with ease. I probably will end up porting it to the ESP32.\n\nA simple `.ino` file is included for a demo of the particle system, and it's use.\n\n![ArduboyRecording(1)](https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/3817f76b-6c9a-4192-863e-1b616120c22c)\n\n(Default settings shown above. The \"explosion\" can be altered by the user)\n\n## Features\nAB-Particles is a simple, minamalistic approach to a particle system. \n\nCurrently, it has the option for either square or circular particles, and an option to have filled or \"outlined\" particles.\n\nSquare (not filled):\n\n![ArduboyRecording](https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/e45267ca-e2cc-4f21-a5a5-f2e812a22d0d)\n \n Square (filled):\n \n ![ArduboyRecording](https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/89bcd7aa-897d-4327-a486-4ca166668603)\n\n Circular (not filled):\n \n![ArduboyRecording(1)](https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/deb7939b-28bf-4d7d-9d8e-c15adba9d4e4)\n \nCircular (filled):\n\n![ArduboyRecording(1)](https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/d2313ebe-5d7c-46be-88af-dab557a0e7b1)\n\nEach particle also has a set lifespan/lifetime, where after the lifespan of a particle is over, the particle will disapear. The lifespan of a particle is pseudo-randomly generated, leading some particles to disapear earlier than others for a nice effect.\n\nA horizontal and vertical force (which are added to the particle's velocity) is also pseudo-randomly generated (but restricted by a limit defined by the user) meaning each and every time you reset (and update + render) the particles, you'll have an entirely new effect.\n\nBigger particles (defined by `size`) will also fall faster than smaller particles, giving the \"explosion\" a realistic feel.\n\nYou can also define how many particles you want. (30 by default).\n\nSettings are configured inside the `User-Setup.cpp` file.\n\n\u003cimg width=\"255\" alt=\"image\" src=\"https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/65115c8c-84de-4977-8422-5925f4dc630d\"\u003e\n\nOne setting is also available in `User-Setup.h`, however most will not need to change it unless they have memory concerns regarding their program.\n\n\u003cimg width=\"400\" alt=\"image\" src=\"https://github.com/omrawaley/AB-Particles-Particle-System/assets/133281331/a3bf99e7-c93c-4b75-94af-4e3384674ba9\"\u003e\n\n## To Use:\nTo utilise AB-Particles in your project, you must include the `AB-Particles.cpp` and `AB-Particles.h` files (available above in the `src` folder) in your project directory.\n\nFrom then, make an object of the class `Particles` called `particles`, as `particles` is `extern`ed in the header meaning it is known throughout all your project files. Same thing with the `Arduboy2` class, so you should call your `Arduboy2` object `arduboy`. If you have any confusion regarding this step, feel free to check out the demo included.\n\nNote that in order for the `random()` function to work properly, you must seed it with the `Arduboy2` function, `initRandomSeed()` in `setup()`.\n\nAs mentioned above, you can change and configure values/settings in the `User-Setup.cpp` file.\n\n### Functions\n\nAB-Particles includes three functions: `reset(float x, float y)`, `update()`, and `render()`.\n\n`reset(float x, float y)`: Randomizes each particle's attributes in the array set, and takes an x and y coordinate for each particle's position (world space or camera space depending on what you input to the function).\n\n`update()`: Updates each particle per frame.\n\n`render()`: Renders each particle per frame.\n\n## License Notice:\nCopyright 2023 Om Rawaley (@omrawaley)\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n### Terms\n\n- Redistribution and modification is permitted as long as you abide by the redistribution terms\n- The author or license cannot be held liable for any damage caused by the software\n- Must include a copy of the license and original copyright notice when redistributing\n- Must state all changes made to the software when distributing\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomrawaley%2Fab-particles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomrawaley%2Fab-particles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomrawaley%2Fab-particles/lists"}