Code Monkey home page Code Monkey logo

8_bit_hubble's Introduction

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...'

8_bit_hubble's People

Contributors

amcajal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

8_bit_hubble's Issues

Port Sprite design spredsheet to Open Source format

Current spreadsheet is on Microsoft Excel. Goal is to achieve same functionality in an open source format, like Libre Office. Take into consideration that style rules of the spreadsheet (i.e, turn this cell background color to yellow when its content is "x") shall be kept.

Image seed is not properly showed in GUI

Summary
When launching the GUI, after generating an image, the window pop-up containing the result does not show properly the seed of the image.

How to reproduce
Launch GUI application, and generate an image (either with a random seed, or a user seed). Compare the seed being showed in the window pop up with the seed that can bee read in the PNG file (open the image with a hex-editor, and seek for the "text comment" field, defined by the PNG RFC).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.