All Projects → aporia-ai → TrainInvaders

aporia-ai / TrainInvaders

Licence: MIT license
👾 Jupyter Notebook + Space Invaders!?

Programming Languages

c
50402 projects - #5 most used programming language
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to TrainInvaders

clash-spaceinvaders
Intel 8080-based Space Invaders arcade machine implemented on an FPGA, written in CLaSH
Stars: ✭ 45 (-49.44%)
Mutual labels:  space-invaders
GreatSpace
👾 Space Invaders Game Style
Stars: ✭ 20 (-77.53%)
Mutual labels:  space-invaders
galaxy-raiders
Just another Space Invaders clone implemented using SFML.
Stars: ✭ 18 (-79.78%)
Mutual labels:  space-invaders
CoTerminalApps
Retro ASCII Puzzles plus SpaceInvaders, Pacman & Frogger arcade games that run WITH SOUND in a terminal on any platform !!
Stars: ✭ 21 (-76.4%)
Mutual labels:  space-invaders
Galaxy-Attack
An inspiration of the original Atari Space Invaders game built in pygame 👾 🎮
Stars: ✭ 32 (-64.04%)
Mutual labels:  space-invaders
space-invaders
👾 Space Invaders 2d game with Ruby/Gosu
Stars: ✭ 16 (-82.02%)
Mutual labels:  space-invaders
space-invaders
👾Python clone with a modern twist
Stars: ✭ 209 (+134.83%)
Mutual labels:  space-invaders


TrainInvaders
Train Invaders

Jupyter Notebook + Space Invaders!?

Python version Python version License

Why?Getting startedHow it worksFAQDrawbacksContributeThanks toYou may also like...

Demo

Why

Training a model can be a long long process!

In the meantime, have a bit of fun with a competitive space invaders game.

See if you can get your name to the top of the leaderboard.

Getting started 🏁

  1. Install the game: !pip3 install train_invaders --upgrade
  2. Import the game in your notebook: import train_invaders.start
  3. Start training your model. The game will automatically pop up when the process begins.
  4. Play the game! You'll get notified when your training is finished.
  5. Want to stop the game from popping up when the model is being trained? import train_invaders.stop will do the work.

How it works ⚙️

Tons of magic... Just kidding :)

When importing the start module, its code will be executed.

The code utilizes python's settrace function which follows the functions' call stack.

When a function named fit train or train_on_batch is called - using Jupyter notebook's kernel, aka, IPython, a javascript view code will be injected inside the output block as an iframe to keep it completely isolated from your code.

When importing the stop module, the settrace function will be canceled and the function hooks will be removed.

FAQ 🙋

Will it interfere with the training process somehow?

NO. The game will start and be played in parallel to the training and will even let you know when the training is finished.

Drawbacks 🥺

  • Training stop indication is only in Jupyter Notebook. Want to get notified by email or text? Try MLNotify
  • Authentication, and therefore, saving your score can only be done from localhost and port 8888 - 8891 / 8080 / 8081

Contribute 🤝

Have an awesome idea for a new feature? PRs are more than welcome!

  1. Clone the project
  2. Run make build-game to get a local and compiled copy of the game (if not exists)
  3. Enter src/view directory and run npm run serve to run the local environment
  4. Implement your ideas
  5. Made changes in the game (C files)? Re-run make build-game from root dir and check them out
  6. Enter root directory, run make build, pip install . --upgrade and test the changes in your notebook
  7. PR us!

Thanks to 🙏

JanSiebert for the WebAssembly game.

Cody Boisclair for the PressStart2P font.

Vue for the awesome FE framework.

You may also ❤️

Aporia - Customized monitoring for your ML models.

MLNotify - Get notified when training is complete.

MLOps Toys - A curated list of useful MLOps tools.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].