A showcase of some shader code for Godot game engine. Currently there are 8 types of planets, also generates black holes, galaxies, stars and asteroids. Each type has a lot of possible variations. Also allows you to export any planets you like in either a png , gif or a spritesheet.

Drag your mouse around the planet to change the lighting.

If you want to use this for yourself you can download the source for the shader code. Lots more options for variations are available in the source. 

This project is completely free to use and will stay free, but donations are very appreciated, thanks!


  • Q: On the downloadable version, where do I find the exported files?
  • A: On Windows and Linux, in the same folder the program is. On MacOS under "~/Library/ApplicationSupport/Godot/
  • Q: How do I use spritesheets?
  • A: Determine how many frames you want for an entire rotation. Set this amount of frames for the width (or height). If this exceeds the file width limit, try increasing the other dimension (width/height) for more frames. And of course whatever tool you use to display animations has to support spritesheets.
  • Feel free to ask me anything if something isn't clear, cheers!


Source on Github: https://github.com/Deep-Fold/PixelPlanets 

Available under MIT license. Credit is appreciated, but not required.

Rated 5.0 out of 5 stars
(342 total ratings)
Made withGodot
Tags2D, Generator, Godot, Pixel Art, planet, planets, Shaders, Space
Code licenseMIT License


Download NowName your own price

Click download now to get access to the following files:

PixelPlanetsWindows.exe 34 MB
PixelPlanetsLinux.x86_64 35 MB
PixelPlanetsSource.zip 749 kB

Development log

View all posts


Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 40 of 221 · Next page · Last page
(1 edit) (+1)

Thank you this is amazing for my game. How did you manage to slow down the sprite animation like that and be smooth? 

Glad you enjoy it! The reason the animation is slow in the program is because it's rendered through a shader. So it actually just renders a new sprite every frame. If you want that same smoothness you probably have to use the shader files themselves in whatever engine you are using, they are available in the source. Otherwise you have to export a high number of frames in a spritesheet, and then loop through those at 60 fps.

(1 edit) (+1)

Thank you very much! Also where can I learn to be master of shaders like you?

Haha, I still have a lot to learn with shaders. In order to get better at them I would say just practice a lot and try to make new stuff with shaders, you'll pick up a lot of tricks along the way. Also thanks for the credits, congrats on making a game!


This is where I used your planets and I gave credit:



I really love the look of these planets and the customization is amazing!

I am wanting to use generated planets in a project of mine, my question is: how can I generate and save large quantities of pngs? How would I automate downloading hundreds of each planet type? It is important that I have the sprite sheets in storage, I cannot simply generate them dynamically based on a seed #.  I am not sure where to start.

Any help helps. Thanks!

Glad you like it! There is currently no way to batch export a bunch of planets, I'm not sure if I'm going to add that either. However you could use a macro program or something to automate randomizing and exporting a bunch of planet. Hope that helps!


This is one of the best thinks i have seen hhere

Thanks, glad you like it!


i cant stress enough how amazing this is. i'm making a sci fi game so this will really come in handy for inspirations, amazing work

Awesome, would love to see the game when you complete it!


This is a really awesome projects

Glad you enjoy it!


I have been dreaming of making something like this for so long... And I come to find it's already made. So first off, thank you!

A question:

If I wanted to change the settings that create the layers, would it be possible to do this in the GUI some how?

I was wanting to simply play with more of the attributes that are generating these planet types. 


You're welcome haha, hope you like my execution of it.

Unfortunately you can't change layer settings from the GUI. I could implement that but I wanted to keep the interface somewhat simple. But it's very easy to change settings and layers if you use the source project.

Hope that works, cheers!


This is a very wonderful project. Highly recommended.

Thank you, Deep-Fold, for making this tool.


You're very welcome, glad you enjoy!


I cant download the gif. May you fix this?

also with a galaxy with 1009 pixels is smooth. I like this good job

Hmm, not really sure. It works fine for me, should show up in your downloads.

I checked. even my recent experience on the day i played for my first time.

Weird, I tested it from my browser and phone, both work. Not really sure how to fix it.

ok. sorry

No worries, probably just some weird platform specific bug.


I have no words to describe this. Great project! 

Thank you, glad you like it!


This is absolutely amazing and I love it, great work. This is just what I was looking for. Love all the variables and the random options. Simply brilliant little tool.

Thank you! Glad al the options are helpful, hope you find a nice use for it!

(1 edit) (+2)

This is incredible!


Happy you like it!


Holy crap this gives me chills man. Thanks for creating this. tis beatiful. I will give you credit for creating this masterpiece in every single work I use it. Tysm man

Thank you for the nice comment, really glad you like it!


really cool bro. is this cc0 btw?

It's available under the MIT license.


Hey! I used your asset to make a quick intro for my game! Hope you can give it a try! 


Hey! Your game looks really nice, really like the old arcady look. Also well made and fun to play! Thanks for sharing!


Hi! This is awesome!

Would it be possible to modify to base the planet on a satellite image? If yes, how? That would be even better for my purposes.

Thanks a lot in advance!

Thank you!
You mean if it's possible to replace the texture with a satellite image texture? It's not doable without adjusting some code, but should be fairly easy to do.  Are you familiar with shaders?

I'm familiar with shaders only a bit, but yeah I meant pretty much turning a satellite texture into a pixel art sphere. I'm not sure if I need it anymore, but someone else could make use of it, so would you please explain what to tweak?

Ok, so what you could do is:

1.  Put the satellite texture in godot, make sure to enable 'repeat' in the import tab.
2. Load the texture into the shader via something like:

 uniform sampler2D sat_tex;

3. Delete all the old code with the fbm noise, or just leave it and ignore it. Then right before the final color is set, you can do something like:

col.rgb = texture(sat_tex, uv + vec2(time*time_speed,0.0)).rgb;

4. Put the satellite texture into the shader material, and it should display the texture on the planet.

That should work, hope that helps!


I just wanted to say how deeply I appreciate this quality piece of work. I have only experienced one animated art piece that gave me tingles like this and it was by Mark Ferrari (Living Worlds). This and the free pixel space asset generator are phenomenal. I am working on another project at present but 110% want to use these amazing pieces in the space junker game I want to make.

Wow, thanks so much for the kind words, glad you like it! I hadn't heard of Living Worlds before, but those look really nice.

If you happen to make something with this I would love to see it!


Please take a look what I made last day using your program! Thank you so much for making this, they all look gorgeous!


Nice, that looks really cool! I like that you can even click on the planets to see a map of the world. I can see that you put a lot of effort into it, thanks for sharing!


Thank you! The planets had a very limited tileset (there's no lava, no moon dust, etc, so moons lava worlds and deserts look the same) but I wanted to see if I was capable of procedural generation. And it would seem I was. I have plans for a future space exploration game using your programs (and a better, larger tileset). Is that okay for you?


Yeah procedural generation is very fun to mess around with. Feel free to use these for your project, sounds awesome!


Thanks :')


Amazing! perfect for my project!

shame the asteroids dont turn also


Thanks! Hope they work well in your project!

I think I had the asteroids turn in the export animations, but I might have forgotten to do it in the preview.


yeah I noticed a little later they actually turn in the exported formats.

I kind of ment the rotation in the editor but also the way they turn. 

It would be awesome if they could turn like the planets and or other binary asteroids rotating around those.


Oh like that, the way the asteroids are generated makes it pretty difficult to rotate them in the same way as the planet. I'll take a look sometime to see if I can do something like that though.


Thanks in advance!


This is awesome

Glad you enjoy!


I love this so much! thank to this i started hand animating a planet :)


That's really awesome, would love to see that animation when you're done with it! Is it the one from your profile pic?


well nope x) it's another one i made, with a accurate map etc, i was working on it but i kidna gave up... i will surely restart working on it someday, when i find some time to do it x)


Ah okay, well if you ever revisit it I would love to see it!

Deleted 3 days ago

Lol, glad you like it. Hope your exam went well though!

Deleted 3 days ago

where does the exported go?


In the browser it should be in your downloads. For the downloadable version the file should be in the same folder as the program.


this is genuinely very beautiful, i'm so in love

Thank you, I'm glad you like it!


I used this and the space background generator for my game, Pizza Redemption, and will likely keep keep using your stuff! It's really useful! Looks great

Awesome, love the name of that game haha! Glad it was useful, and well done on making a game!


This is so COOL!!!!

Thank you!


Great job! Really impressive



Hi, this is very good, um by the way can i build a tool like this? i want to build a waterfall generator, am i allowed do that?

Glad you like it! Yeah feel free to build whatever you want haha, I don't own the concept of a generator or anything.


Can I reproduce the generator system with unity?


Yes, there are already two unity projects of this out there. Check out https://github.com/hmcGit/UniPixelPlanet and https://github.com/marcus-garvey/UniPixelPlanet


Amazing and free to use. Really really appreciate what you've made and shared here!

You're very welcome! Glad you enjoy it!




Very Impressed. Are planets generated from your tool fair for commercial use? Just curious? And results are good for the most part, but is there any way to control the speed of rotation. (NOT FPS). Thank you.

Like you see the speed of the planet before it is exported? Is there anyway to mimic that? 

Yeah feel free to use it in your game or whatever project. The speed of rotation is directly tied to the amount of frames you export, assuming you play back at the same framerate.  In the preview 1 rotation is about 50 seconds, which at 60fps is 3000 frames. But if for example you play back at 30 fps you need 1500 frames for the same speed.


hey, how do I make a planet with a ring?

Hi, currently the only planet with a ring is one of the gas giants.

ah, ok.


I'm working on a game with procedurally generated planets and this is a perfect fit. My own code for randomized planet textures just proved that I'm absolutely terrible with anything related to visuals, and I'm more than happy to let it go for this.

Honestly, it's amazing how much these shaders are capable of. I've spent the entire weekend working on code that randomizes all the parameters and got so much more out of it than even what the demo app is showcasing (which is already a lot). At this point, just flying around the galaxy and looking at all the planets might end up being more fun than actually playing the game. xD

Only small thing I noticed is that when you set the crater size to be very small on lava worlds and "no atmosphere" worlds, they tend to line up like the stripes on a watermelon and it looks fairly out of place.

My first tries at procedural planets weren't so good either haha, but if this works for you that's awesome! Sounds like you've something very nice with it!

Interesting about the craters, I hadn't seen that myself yet but I might be able to fix that. Thanks for the feedback!


Everything is very pretty, with one exception if I might: gas giant rings. They should look way more "uniform" if you know what I mean. Like they're solid.

Yeah I get what you mean, maybe I'll mess with them again in a future update. Thanks for the feedback and glad you like it!


Awesome tool of course, but can you include the option to view the planet from the north or south poles? One of the best planet tools I've ever used!

Glad you like it! Unfortunately with the current implementation that's not really possible since the planet is actually just a 2d sprite.


very nice tool! great work! 



Honestly mind blowing tool, so useful and creates incredible planets. So much value here, can't recommend enough. Really great work!

Thank you for the nice comment! Really glad you like it!


Great job! Would be super cool to be able to export a texture image like this https://worldgen.bin.sh/worldgen.cgi?pct_ice=0&palette=Atlas&height=400&projecti... 
The black hole is easily my favorite planet type.

Thanks! I have a version of the project where I do that, you can find that here. But unfortunately I don't think I implemented a way to export the maps.

Is there an easy way to export the maps. I would need to export like 100 different.

No I don't think there is a way to quickly export that many maps, it wasn't really designed for that.

I have a bit of programming experience in javascript and python do you think it is possible to create a way to export 100 2d maps or should i find another way to do it?

Yeah, it's written in GDScript which is very similar to python. If you call the generation and then the export method in a loop it should generate and save a bunch in a row. Alternatively for a non-programming method you can set up a macro or something to click generate and export 100 times.


I love it. The only thing I wish is that I could name the spritesheet on export. But honestly, it's pretty sweet.

Glad you like it! Yeah I agree some file naming would be nice, but it should be easy enough to just rename the file on your OS. Also I try to keep the generator as simple as possible. Good suggestion though, thanks!

Viewing most recent comments 1 to 40 of 221 · Next page · Last page