Asteroids and lasers - what could possibly go wrong...



ESP32 Asteroids

A simple implementation of the classic arcade game Asteroids on the ESP32 using a laser and mirrors.

Although the code is based around driving a laser, you can use if with a normal display if you have one.

You can watch a video on how it all works here


You can find more details on the schematics and how the laser galvos work in this video -

The project is built using PlatformIO and uses the Esspressif IDF. I've been testing on a WROVER module, but it should work on a WROOM as well - though there may be some issues with running out of memory.

The code is still under development. There are some bugs and issues to be found.

  • Box2D font

    Box2D font

    Thank you for this project. Looks like it's missing the box2d.h file? Was wondering if this was an omission or intentional before I start commenting out references to that file....?

    Here's the console build output:

    In file included from src/Fonts/SimpleFont.hpp:5,
                     from src/Fonts/SimpleFont.cpp:1:
    src/Fonts/Font.hpp:3:10: fatal error: box2d/box2d.h: No such file or directory
     #include "box2d/box2d.h"
    compilation terminated.
    opened by hondaman900 8
  • box2d missing

    box2d missing


    I wasnt sure if the other submitted issue was related to this but the box2d lib doesn't seem to exist. Thank you, I still owe you some pictures and videos of my RGB laser display and hope to add colour to your project!

    opened by trevorboultwood 2
  • rotate world screen

    rotate world screen

    my output is rotated 90 degrees, is there an easy way to rotate the world box?

    PS thanks for sharing this. I had a bunch of issues with your ilda file renderer in your other library but this is working at rendering fonts. I don't have an encoder hooked up yet.

    PPS First thought is active noise canceling for the galvo, wonder how hard that would be.

    opened by jschoch 2
possibly the cheapest polysynth you can make

Arduino Polysynth possibly the cheapest polysynth you can make. It doesn't have an interface - you have to plug in a midi keyboard. It has 10 voices,

Marek Bereza 9 Apr 28, 2022
null 235 Jun 22, 2022
PikaScript is an ultra-lightweight Python engine with zero dependencies and zero-configuration, that can run with 4KB of RAM (such as STM32G030C8 and STM32F103C8), and is very easy to deploy and expand.

PikaScript 中文页| Star please~ 1. Abstract PikaScript is an ultra-lightweight Python engine with zero dependencies and zero-configuration, that can run

Lyon 786 Jun 27, 2022
Signed - a 3D modeling and construction language based on Lua and SDFs. Signed will be available for macOS and iOS and is heavily optimized for Metal.

Signed - A 3D modeling language Abstract Signed is a Lua based 3D modeling language, it provides a unique way to create high quality 3D content for yo

Markus Moenig 88 May 26, 2022
ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps

EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with EMS (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.

EMS-ESP 152 Jun 16, 2022
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.

SynnixOS Epic Hobby OS targeting x86_64 CPUs, it includes some hacked together functionality for most essential OSs although, with interactivity via Q

RaidTheWeb 40 May 27, 2022
🎮 Plants vs. Zombies multiplayer battle, developed via reverse engineering, inline hook and dynamic-link library injection. Two online players defend and attack as the plant side and zombie side respectively.

Plants vs. Zombies Online Battle This project has two original repositories: https://github

Liugw 71 Oct 14, 2021
Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Young 1.3k Jun 24, 2022
PLP Project Programming Language | Programming for projects and computer science and research on computer and programming.

PLPv2b PLP Project Programming Language Programming Language for projects and computer science and research on computer and programming. What is PLP L

PLP Language 5 Jun 23, 2022
A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements

Units What's new Some of the CMake target names have changed in the latest release, please update builds appropriately Documentation A library that pr

Lawrence Livermore National Laboratory 103 Jun 24, 2022
Second life for famous JPEGView - fast and tiny viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimalist GUI and base image processing.

JPEGView-Image-Viewer-and-Editor Updated Dec 07 2021. Version has been released. Download link1, link2 added. Second life for famous JPEGView

Ann Hatt 20 Jun 9, 2022
An easy to build CO2 Monitor/Meter with Android and iOS App for real time visualization and charting of air data, data logger, a variety of communication options (BLE, WIFI, MQTT, ESP-Now) and many supported sensors.

CO2-Gadget An easy to build CO2 Monitor/Meter with cell phone App for real time visualization and charting of air data, datalogger, a variety of commu

Mariete 19 Jun 23, 2022
Allows to swap the Fn key and left Control key and other tweaks on Macbook Pro and Apple keyboards in GNU/Linux

A patched hid-apple kernel module UPDATE August 2020: swap_fn_leftctrl is now built-in in Linux 5.8 ?? UPDATE Jun 2020: New feature added (swap_fn_f13

Zakhar Semenov 295 Jun 23, 2022
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

______ _ ___ ___ | ___ \ | | | \/ | | |_/ /___ _ __ __| | ___ _ __| . . | __ _ _ __

Leon Fedden 279 Jun 18, 2022
Classified is an easy and handy encryptor and and decryptor which is can protect your file.

CLASSIFIED Classified is an encrypted and a decrypter. It can encrypt anykind of file with any extension. It is very secure. The thing only matters is

Shreejan Dolai 3 Feb 13, 2022
LLVM IR and optimizer for shaders, including front-end adapters for GLSL and SPIR-V and back-end adapter for GLSL

Licensing LunarGLASS is available via a three clause BSD-style open source license. Goals The primary goals of the LunarGLASS project are: Reduce the

LunarG, Inc. 151 Jun 18, 2022
John Walker 15 Jun 16, 2022
This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.

![Contributors][Huang Jianyu] Statement 由于工具源码在网上公开,除使用部分开源项目代码外,其余代码均来自我个人,工具本身不包含公司的知识产权,所有与公司有关的内容均从软件包中移除,软件发布遵循Apache协议,任何人均可下载进行修改使用,如使用过程中出现任何问

HuangJianyu 34 May 5, 2022
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++. Among others, it's used in Minecraft by

Michele Caini 6.9k Jun 24, 2022