realistic space station

The spacestation has two rings spinning in opposite directions, in order to cancel out and allow the space station to spin on the y-axis, in order to keep it’s solar panels facing the Sun. It’s in orbit between Earth and Venus. Each ring has a 2.8 kilometer radius and a 250 meter depth. There are 57 floors on each ring with artificial gravity ranging from 10-9 m/s^2. Each ring has enough hydroponics to support 500,000 people for a total of 1 million.

Here is the spreadsheet:

The following picture is a residential/agriculture floor. There are two hallways with conveyors going in opposite directions, connected by 100 connecting hallways. Hydroponics is in the middle and the residential units on the far left and far right, which have windows.

Here is a layout of an apartment I’m working on:

The first floor is different, I wanted to imitate a city aesthetic so it’s actually 4 stories high and it’s where all the commercial locations are. I generated the following using a Python script. Only been at it for 3 days now, but I am adding more and more detail.

The outside of the space station was also generated using a script. Here is an animation I made. It’s so big all the details blur together but I zoomed in so you can see the windows and solar panels.

What do yall think so far?

wrote a script to add all the door handles and signs, it was frustrating trying to get all the objects to align on a ring-shaped space station. still need to make a bunch of sign textures.

I think it looks pretty good so far.
I actually designed a space station that has a similar exterior, but if my PC had to deal with all the reflection in your interior it would probably explode. With that said…just so you’re aware, those interior rooms in the commercial area are going to need objects inside of them to break up the confusing reflections. My eye can’t figure out if I’m seeing into the room or a reflection of the room across the hall and…it kind of hurts.

I was just thinking about it, I have the window map on both sides, floor and roof of each building. The floor and roof are covered but the two buildings, back to back, have windows and you might also be getting reflections from. I will have to update my script to assign only the faces facing the hallways to the window map material.



Made a noticeable difference! The top windows are mirrored glass (glossy shader to the max) and the bottom windows and doors are just a glass shader.

So I have a script that assigns logos to the shop signs. At first I was using royalty free logo templates, but I needed too many. I used the Census data on businesses, and downloaded 1200 real logos for businesses and created a realistic distribution of business types. It’s all automated but downloading 1200 logos and cropping them and building a JSON file organizing them by business type, was pretty tedious.

Now I just need to work on the buildings themselves, they are a little bland right now.

I also came up with better code to place the door handles and signs.

Creating displays in the windows unique to each business, would be A LOT of work. I can’t really think of any way to script it. I might just make them tinted or mirrored instead.

Here is an overhead view:

Returned to work on this scene some more.

As I’m fairly new to Blender, I wasn’t quite aware such incredible things could be accomplished with a script. I like the fact you’ve taken the centrifuge city in a slightly more realistic direction. Instead of buildings on land like a normal city, You’ve built them on a separate level to make better usage of the space. the huge airlocks make sense too. I’ve been slightly obsessed with centrifuges forever. Awesome work.


I am a huge scifi fan but I can’t think of a single tv show or movie that used a ring space station with centrifugal artificial gravity. I think the horizon curving up is really cool.

The above are the floors above the commercial floor. Before I did it by hand, this version was generated using Python. The center buildings are hydroponics and the outer buildings are residential. The residential units all have wall sized windows. I did a speed walk conveyor in both hallways, each going in opposite directions. There is also two trains on the top floor, going in opposite directions. With elevators, speed walk conveyors and trains; you can get anywhere on the 2.8 kilometer radius ring in under 11 minutes.

Could be just me but would conveyor belts all around not be a bit of maintenance hell? A train system sounds more economic to maintain, transport people faster and be safer to use. Could be even one smaller train with many stops (like a bus) for closer distances and one with few stops (like a train) for larger distances. Not sure if this would be required in such a place. Chances are the small shuttle type (or subway type) train would be enough. Your call in the end.

Yeah, something about the logos and conveyor belt looks too “present day” and the conveyor belt feels impractical compared to other alternatives.

The level of Python procedural generation, on the other hand, is super-impressive. I was toying with making a wheeled space colony using Blender and/or FreeCAD, but I think this blows what I’d been pondering way out of the water.

Thanks! I thought about doing golf carts instead of conveyors. The logos, I have over 1000 unique logos that a script assigns to each sign randomly. At first I started doing royalty free vector art logos but there weren’t enough free ones so I switched to real logos. I read that you can use real businesses in movies and tv shows as long as you don’t portray them in a negative way. They are “present day” logos but I can’t really think of an alternative that won’t take forever.

You know about the curve deformer? Your script apporach seems to have worked fine for you, but since it looks repetitively all the same you could have used an array modifier and a curve modifier. (That would not have helped you place different signs on the signs though.)

Babylon 5 - used that for artificial gravity, because the Minbari wouldn’t share their artificial gravity tech.

I didn’t know about that approach. My script counts the vertices, and every x vertices on a building, it will get coordinates of the vertex before and after the place I want to place the object, do some math to determine the center point between the two vertices, then place the door handle or sign. I also do the math for rotation, to make sure the door handle or sign is rotated the right amount to be perpendicular to the floor. I actually tried several approaches, this one seems to work for me.

The old version of the script, placed the object, which caused an update of the scene. There are a thousand signs and door handles and with each one, there were more objects in the scene, which caused the script to get slower and slower as there were more and more objects. I had to redo the script, so that it wouldn’t do that automatically. I then used the following to manually update once all the objects were created.


Quite a number have actually. The original was probably 2001:A Space Odyssey, Much more recently, Interstellar, the Martian, and the Amazon show The Expanse has done a excellent job with space physics. Including a massive ring planet/station.
Amazing work again.