Skip to content

Generate random pixel art galaxies! In honor of Hubble Space Telescope, SNES videogames and Bob Ross

License

Notifications You must be signed in to change notification settings

amcajal/8_bit_hubble

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

project_logo

License Version Build Status codecov

8-bit Hubble is a desktop application that generates PNG images of galaxies with an 8-bit appearance - also known as Pixel Art. The galaxies are random: number of stars, its color, size, position, shape, as well as other elements like background color (technically, the nebula) are randomly chosen.

Re-implementation in Go already available

Here are some examples: Galaxy_collage

8-bit Hubble its a humble tribute to:

  • The Hubble Space Telescope, mankind's technological prodigy showing how important and amazing the space exploration is. In fact, the images generated are somewhat similar to the ones at "What is Hubble looking at now?"
  • Classic Videogames: technology made entertainment; titles like R-Type DX, Super Mario World, Metroid, and TMNT Turtles in Time serve as inspiration for the sprites of the application.
  • Bob Ross, the legendary painter. The "wet-on-wet" technique, used by Ross, serve as model to the application algorithms (a kind of Painter's Algorithm. A comparison between Ross famous catchphrases and the algorithm can be seen here.

For technical details and more info, visit the Wiki of the project

8-bit Hubble is also a proof of concept project, whose goal is to test the compatibility between Safety-Critical System Software goals and "Clean Code" principles, like Test Driven Development, Extreme Programming, and Continuous Integration.

Also, the project is a sandbox for "homebrew principles", like a 5s Philosophy Directory Structure.


Index

  1. Quickstart
  2. Contributions
  3. License
  4. Contact

Quickstart

For users:

8-bit Hubble is a single executable. No installation is needed. Click here to go to the downloads page, select your version, and click on "Download" button (at the right side of the screen). Once downloaded, usage is straightforward: double click on the exe and

  1. Choose the image's name
  2. Optional, choose a seed for the image (it will control the random generation process)
  3. Click "Generate". Any errors will appear in the messages windows. Otherwise... enjoy!

For developers:

  • Clone the repository:
$> git clone https://github.com/amcajal/8_bit_hubble.git
  • Modify the <root_dir>/project/dev/test/high_level_test/python_uat.py (instructions in the very file) with the proper information. Otherwise, several errors will appear during the build.

  • Run "setup.sh" script. It performs a full build process. Use bash, not sh! (dependency checking, executable build, tests running, coverage and performance reports, etc).

$> cd <project root dir>
$> bash setup.sh

A "setup_log.txt" is generated with the results of the build process. If everything is correct, then the GUI can be launched (as explained in the previous section), or the CLI version.

$> 8_bit_Hubble_cli.exe --help
  • To run tests:
$> cd <root_dir>/project/dev/integration
$> make clean
$> make all
$> make tests

Then, under /test/ dir, the executable can be launch

  • For windows, things are a little more complicated. Open the Makefile (under <root_dir>/project/dev/integration) for more information, but in summary, launch the following command:
$> make all TARGET=windows

Finally, to jump right into the code, its recommended to start reading the "big_bang_core" module implementation, located at <root_dir>/project/dev/src/big_bang_core/

Back to index

License

About 8-bit Hubble:

Alberto Martin Cajal is the original author of 8-bit Hubble. 8-bit Hubble is released under GNU GPL version 3.0 license. Check LICENSE file for a full version of it, or visit the official GNU web page

About libpng and GTK:

These libraries are third-party libraries and are NOT owned by 8-bit Hubble author.

libpng is released under the libpng license. Check the official webpage.

GTK+ is released under GNU LGPL license. Check the official webpage

Back to index

Contributions

8-bit Hubble is open to contributions! Check the related page at the Wiki of the project

Back to index

Contact

Alberto Martin Cajal at:

Back to index


This project has been created trying to make it useful. This project has been created in order to learn new things. But over all, this project has been created because it is fun. As Isaac Asimov said:

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka' but 'That's funny...'