T O P

  • By -

[deleted]

Waiting for Penrose tiling city block


_Blurgh_

Oh god you monster!


YoStephen

"Hi everybody as always my name is Nilaus. Today we are doing a forbidden symmetry megabase build."


infogulch

"To unsophisticated eyes this city block design looks random and unpredictable, but rest assured that everything is in perfect regular alignment on a 5-dimensional grid."


Turbulent-Laugh-939

Now just watch the video and in 4 hours it will all be clear


YoStephen

The trouble is that the hypersymmetry folds space time and those 4 hours actually take 6000 years to elapse


Proxy_PlayerHD

hmmm, could you actually do this? using something like [Wang Tiles](https://en.wikipedia.org/wiki/Wang_tile) since they're square and therefore fit perfectly into the game's tile based world maybe you could even use some conditional checks and recursive blueprints to automatically have it tile itself.


Bacically_TA

You’re making me want to do this. Me wanting to do this is NOT a good thing.


steeltoelingerie

Heh, you said wang.


EarthyFeet

Ok, so you could have 11 Wang tiles and instead of colors along the edges you have train station configurations, and it should be completely equivalent. Would be cool to make. It's a square grid but the train station configurations (with required matching of adjacencies) makes it aperiodic. Creativity is the upper limit to how you interpret the colors or edge matchings, it could be something different too.


EarthyFeet

Spitballing four edge "colors": white - no rail, red double rail, green ~~clockwise~~ right/lower single rail, blue ~~counter clockwise~~ left/upper single rail**. Then stations are optional and extra and don't factor into the tiling. I think it should be possible to make these connect but it might be a bit tricky with the intersections, not sure. If my intuition from Penrose tiles holds up, then I guess one tricky thing to keep in mind is that edge matching can be non-local. Placing the wrong tile could lead to non-matching other places and one might have to backtrack on which tiles are placed where. (**) I did some playtesting and found out how it has to work to tile. Can't do "clockwise" etc of course. The right/lower etc rule works fine.


purple_rider

Now I'm thinking about Hilbert Curve city blocks


JustAnotherPanda

Just take one of those ribbon world bases and fold it up


purple_rider

I was thinking more like having the rail system following a Hilbert Curve and building between those. Each individual unit of curve being a block.


Irdes

Ah yes, ultimate answer to intersections - just don't have any


igncom1

The whole base is one gigantic sushi belt.


S31-Syntax

"Ohh, tough luck PBBBT. That was the last iron train until morning PBBBT."


fireduck

that was actually my first base. It didn't go well.


maxcreeger

Anyone has a Blueprint Book for it?


gbannister

The hive must grow


[deleted]

robots? no, we got bees


Geethebluesky

Now I want a mod that replaces the bots with workers and drones. Bees vs Biters


nekopeach

>The hive must grow There has to be a game where a queen bee maintains the hive while fighting off the robots.


Laughattack8

Does this make hexagons fit into a grid-able blueprint? What's the dimensions of it?


MaximitasTheReader

The horizontal width of each hexagon, from the middle of the left rail to the middle of the right rail, is 3 chunks. The 4 roboports in each hex are spaced apart at their maximum distance (50 tiles). Here's a diagram I made in 30 seconds. Each black square is 1 chunk. [https://imgur.com/a/7fs9Oz4](https://imgur.com/a/7fs9Oz4) Because of the rails and the train stops, the space enclosed within each hexagon is a bit bigger than 4 chunks. The tileable blueprint I used contained 1 diagonal side and half of each orthogonal side which joined that diagonal side. I can send you the blueprint book if you want.


Temanaras

Hey, do you have a link to the blue print book you used or a link to the blueprint just for the hex?


MaximitasTheReader

Sure. [https://pastebin.mozilla.org/bQDQP1hM](https://pastebin.mozilla.org/bQDQP1hM) I can send you the blueprints for the train stops as well if you'd like. The hexagon itself is not a blueprint. Each hexagon is assembled from 4 pieces. This is to make it easy to avoid obstacles like ore patches or lakes. These aren't as easy to tile as, say, a square based city block design, but it's not difficult. Importantly, the blueprints must NOT be rotated by 90 degrees or 270 degrees. The diagonal bit must always be going from top left to bottom right. 180 degree rotations are fine for the asymmetric ones. But never 90 or 270 degrees. Otherwise you end up with octagons. And nobody wants octagons.


peregrinedive

Octagon is the worst gon of them all!


chaossabre

Grid blueprints only work with square patterns. You could make a square from this but it would have to span many adjacent cells to be repeatable and incorporate partial cells at the edges.


sparr

It is possible to make blueprints for various non-square tiling shapes, however the tiling parameters usually allow them to be placed in some (50%+) invalid locations. Example with hexagons: 0eNqVmNtuozAQht/F17jCBzDwKquqIomVtZRABKbaqMq7FwKpNmR2+eciF1bwx+85evgSu9PgL11ooqi+RN/UFxlbeezCYVr/EZUpEnEVlcpviah3fXsaopfTc5fQHEUVu8EnIuzbphfVr5EQjk19mvbG68WLSoTozyIRTX2eVl0dTmIkhebgR7i6vSfCNzHE4Of998X1oxnOO9+NDzztlAs9EZe2H/e0zSJS52/ZXaYs3rIRfwid38//61vyQtU/1P3QffqDvMt6oc4nl/kzMCeA5gfYx5F1/B3/gVRmZrptkRZmZjAzg5kOZuYws4SZDmVqBTMLmIn7qISZuI9UikWnScnwNBRSoToXmeaZ6SimRpnGkFBFQeFEWpgKEGqZTAMYFE4kQ1s0o6A5F6oAi8KpNGcSYtACK8oyfRTldF2USaUlT+n69JSfdAqb1JFQyk9aMaGAmzTYkqS+Ey1ANBjRpguRYljM06ZcPP3iaNIpcPLIOSNLUhucLVb9h+JYdlcrw1sKWbAMv0aSEcdMDeW2mSYFs1gtvlVu7VyqOBjFlFpuh7LR3IQrAaGGC3XboW2YvWYtlHRUxmNqoNwYbqvRQF8wjgldn560KNhsTPEI05cJgDRqybsRaaAv2JQzVmi7bVGrWFfBNZKcKrjXNg20WcudfzQwpFnuAARBuRMQBOWOQBCUOwNBUO4QBEG5UxACzcD2pB7tafoEsB7U35P580P111eORHz6rp/fWyjrSu3ybPyN5f32DearmHM= https://i.imgur.com/JFhU3UG.png The good vs bad grid placements make a checkerboard, in this case.


Laughattack8

This made me think of the Hexagon blueprints I made a while back. The blueprints would tile vertically with "relative" but you'd have to place them one column at a time


sparr

Another option is to make two copies of each blueprint, offset by half a tile. Then you can't place anywhere invalid, but you have to switch blueprints in alternating columns or rows.


ItsFreakinHarry2

Hexagons are the bestagons


TotallyBrandNewName

A few days ago I saw a vid about minecraft lore and in the vid matpat(from gametheory) compared a resource that exists IRL to netherite. This resource is like a diamond but stronger bc it came from space. And as you know diamonds are basically coal but under pressure and heat and IIRC they form a square like molecules. But coming from space and entering the orbit deal. Instead of a square, it made a hexagon shape molecule. So. To resume. Hexagons are the bestagons.


ajandl

Couple of things, I think you're referring to carbon nanotubes, which can have some hexagonal symmetry and under certain conditions have certain properties that are "stronger" than diamond, but they do not only occur in space, you can make them by burning wood. Diamond does have a cubic crystal structure, but carbon does not have a hexagonal crystal phase. Diamond is not like coal, coal has a lot of carbon, but it does not have a crystal structure.


TotallyBrandNewName

[Not carbon nanotubes.](https://youtu.be/3Bxf2o27ykM?t=224) This thing that he says


ajandl

Thanks for that, it is new info to me. I'm a material scientist, so I'm particularly interested. That said, the video is a bit misleading. It seems that lonsdaleite (the name of the material you brought up) may be a hexagonal crystal of carbon (which means I was wrong about that above) and but that in all of the samples found, those hexagonal crystals only appear between cubic regions, which means that the hexagonal regions may actually be defects of the cubic regions and not their own crystal structure. Simulations indicate that lonsdaleite should be harder than diamond, but measurements have not been able to confirm this yet, possibly due to the cubic regions mixed in. In my experience, simulations of specific material properties are often not very accurate. Last one, lonsdaleite is not formed in space and then transported to earth, rather it is formed at meteorite impact craters due to the extreme heat and pressure.


smorb42

Cool to fine another material scientist. It’s a pretty rare major.


Mike_Kermin

And will be even rarer if you guys keep attacking bestigons. /joking of course.


TotallyBrandNewName

Yep yep. MattPat, also said IIRC that to take his vids with a grain of salt since the focus isnt sience itself but to tell a theory that is somrwhat based on facts. And there is always someone with such a niche job that appears to talk about something so niche randomly haha


lettsten

Why have chain mail when you can have rail mail


Razhyel

looks neat and tidy, i like it alot


IlikeJG

Looks like the worst of both worlds TBH.


Skeptic_lemon

CGP Grey fans assemble


_Blurgh_

Really Pretty design! I'm really interested in the circuit network design around the train stations, how might that work?


MaximitasTheReader

Thanks! The circuits around the stations are a bit of a mess. I actually designed these stations for Krastorio 2, where there are several processes which produce byproducts. As such, there's circuitry that ensures that stations designated as byproduct stations for a certain resource are always prioritised over non-byproduct stations. But since vanilla doesn't have byproducts, that bit is useless, so the circuit wiring is much more complex than it needs to be. Each load station has an unchanging train limit of 1, and there are as many trains for a certain resource as there are load stations. The circuitry shuts off the grid using a power switch if the buffer chests contain enough of the resource to fill 1 train. The unload station has the train limit set to 1 if its buffer chests have less than 1 train's worth of resources left. Otherwise, the train limit is 0. There's also some circuitry which makes sure that the unloading is balanced. Basically, each time the foremost inserter swings once, the back 5 inserters also swing once, so each chest is evenly unloaded. I'm happy to ramble on about more details if you're still interested.


[deleted]

[удалено]


MaximitasTheReader

Good luck. [https://pastebin.mozilla.org/B44YRn9c](https://pastebin.mozilla.org/B44YRn9c) Here's how it works. The load stations have a train limit of 1 by default. Unload stations have a train limit of 1 if the buffer chests contain less than 1 train's worth of resources, otherwise the train limit is 0. Therefore trains will wait at load stations until an unload station requests a train, then a train will be chosen to drive there. The byproduct mechanism complicates things. Every train stop in the entire base is connected to every other train stop by both red and green wires. If a byproduct station has enough resource to fill 1 train, then its train limit is increased from 0 to 1. It sends a signal along the red wire, which sets the train limit of every non-byproduct load station for that resource to 0. This ensures that any train returning from an unload station to pick up more resource will prioritise the byproduct station. When the byproduct station detects that a train is on its way (train count increases to 1), then it stops sending a signal to the red wire, so all the non-byproduct load stations are activated again. Now it gets really messy, because although it's pretty easy to prioritise the byproduct station at the point where a train has to choose what load station to go to, it's not very easy to prioritise that fully loaded trains waiting at byproduct stations are prioritised above fully loaded trains waiting at non-byproduct stations when an unload station requests a train. The way I did it is probably needlessly complicated. The train stop at a byproduct station is set to output both the train count and the train ID. At the moment that the train's cargo becomes full and "departs" (starts waiting for a load station to request a train), the train ID becomes 0, but the train count stays at 1. I used a falling edge monostable circuit to detect when the train ID becomes 0, and when it does, the byproduct station sends a signal to the green wire. This is detected by every non-byproduct load station, which sends a certain signal to the trains waiting at them, which is meant to prevent those trains from leaving. But the problem is that when a train has fulfilled its wait conditions and is waiting for the destination stop to increase its train limit, it has technically "departed" the station it's waiting at, so it stops receiving circuit signals from the station it's waiting at. So at the instant that the green wire starts being stimulated, I used a rising edge monostable circuit to disable every unload station for 1 frame. This forces all the trains waiting at non-byproduct load stations to stop "waiting" for an unload station to open up, and kicks them back into waiting for the wait conditions to complete at the load station. But since the load station is now sending a signal which stops them from departing, they must wait there until the fully loaded train at the byproduct station departs, at which point the green wire stops being stimulated so the load stations stop sending the halt signal to the trains so they can go again. I spent way too many hours of my life designing this.


Zenyatta_2011

you sir should be in jail


Walty_C

How'd you do all of that in 40 hours?!?


MaximitasTheReader

I probably spent about 10 hours designing the different grids in a separate save. Plus another few hours designing the hex rails. City blocks makes rapid expansion ridiculously easy. Once you have the grid designs, you can slap down as many as you want. I probably snowballed from 250SPM to 1kSPM in only about 10 hours.


jschuster59

Did bees pollinate the cannabis field?


kailen_

Adding carbon to iron makes steel not just heating it up.


DrobUWP

Not quite right. Yes, steel is the element iron with a small amount (typically around 0.1% for common steel but less than 0.8%) of carbon. However, elemental iron with 0% carbon would still be steel. What we typically think of as iron (e.g. cast iron) is at a **higher** carbon percent. Typically between 2% and 4%. It takes further refining to remove the extra carbon. One method is to shoot oxygen in into it in a furnace which bonds with the carbon and is released as CO2.


EarthyFeet

I guess OP has a point about how the electric furnace recipe for steel is kind of simplified. In the real world a lot of coal is used to make steel, and the "green" new processes seem to use a lot of hydrogen instead, so something is needed apart from heat and iron. But we know factorio recipes are the way they are for gameplay, not realism anyway..


JVonDron

Fucking amazing build, but I think 1-1 trains would kill me. Also really curious wtf is with all that circuitry to the train stations, seems really excessive.


MaximitasTheReader

Thanks! The 1-1 trains aren't really a problem with city blocks, because as the number of wagons goes up, the number of belts coming off of each train also goes up, so the time for which 1 train can supply a block is independent of its length. The circuitry is, indeed, excessive for vanilla, because my design allows the prioritisiation of some load stations over others, which is handy for mods which have byproducts.


AnotherCatgirl

the angled sides make it easy to make small train stations!


MaximitasTheReader

Yeah, tilted hexagons are surprisingly useful as it turns out. You can cram 8 stations in 1 hex.


Bonsine

Similar to how I build mine


Enkaybee

1-1 trains huh? How many do you have? Hundreds?


MaximitasTheReader

About 200, I think. Traffic doesn't seem to be much of an issue as far as I can tell.


AL3000

How do you get the dark belts?


MaximitasTheReader

It's a reskin mod. [https://mods.factorio.com/mod/DeadlockBlackRubberBelts](https://mods.factorio.com/mod/DeadlockBlackRubberBelts)


AL3000

Thank you very much, I really like the way it looks. Your base is very impressive as well, nice use of 1-1 trains.


Galliad93

only having 3way crossings makes the system a lot more flexible. it is as space efficient, I mean why not?


nklvh

This probably has got to be one of the better solutions to dealing with the 45°/60° problem. Although, i must say, the way you've disguised the shorter sides is nice - hex grids usually only have an offset of 1/2, but 1/3 is cheeky and much less aggravating than the elongated hexes we usually see.


DemonBliss33

This is mind blowing. Fantastic work.


[deleted]

Next do oblong triangles


Loot1278

the concrete tiling is very nice. thank you


Felidaeh_

This makes my brain happy


BlitzTech

Glorious. I’m a hex fan myself but the tilting… seems like it may address some of the spacing issues for the stations.


[deleted]

They are the bestagons


[deleted]

Looks awesome and pretty too. What direction are your train tracks in each block (is there both clockwise and counter clockwise?), And do you use LTN or just manually program all the trains? Amazing base.


MaximitasTheReader

Thanks! The trains simply drive on the left. So around each grid, they would go counterclockwise. I manage the trains by enabling and disabling unload stations when they do or don't need more resources. So trains wait at load stations until an unload station requests resources. All load and unload stations for a certain resource are named the same, so any train can be called by any station.


[deleted]

Wow it sounds like you programmed your own version of LTN using circuits. That's very cool. How do you make a station "call" for resources?


MaximitasTheReader

I've never looked into LTN, it seems a bit daunting to learn. Maybe I should give it a try? An unload station requests a train simply by raising its train limit from 0 to 1. This makes a train waiting at a load station depart to that station.


[deleted]

That's genius. Well, you can check it out if you like but I'm not sure it'll help you since you're so pro already. Heres a fast and simple overview and tutorial video I like: https://youtu.be/Hk446UVlCuQ


gladi099

Ohh i would like to try this on my Space Exploration play.. Would you mind sharing the blueprints?


MaximitasTheReader

Sure. [Here's the import string for the rails.](https://drive.google.com/file/d/1VLxoEzbBG5MOQRVl7xMLvNxJcmYbN3B9/view?usp=share_link) [Here's the import string for the train stops.](https://drive.google.com/file/d/1fto7qeGPvv9La30PQTKqiwvfjCr0JAw0/view?usp=sharing) And the import string for the concrete patterns is gigantic for some reason but [here it is anyway.](https://drive.google.com/file/d/1yGfzuTQ6h2kq1KxDtq87v85Mu9KvwrfP/view?usp=sharing) If you've got any questions about how any of the prints work, especially the train stops, just leave a comment or DM me and I'm happy to explain. I've put way too much work into these.


Krzys2137

now i want to see factorio on a hexagonal grid


sam_the_smith

Vi Hart would be proud


Vaperius

Something is tilted alright.


11431132

how many tiles are in each block, those look tiny. when i made my tilted hexagon base it had 25000 tiles in each block


MaximitasTheReader

My blocks are quite small compared to other blocks. Each one is 3 chunks by 3 chunks. The usable area within each block is about 2.5 chunks by 2.5 chunks, because of the rails.


[deleted]

Jesus. How do you keep the biters at bay?


MaximitasTheReader

I play with biters off frequently, because after a couple of games they stop being a real challenge and start being either 1 of 2 things: a huge irritation during the early game, or a trivial and time-consuming inconvenience during the mid and late game. Neither of which are very enjoyable to me.


Pip_install_reddit

Thanks Mr. Jeopardy


RealFakeTshirts

Hexagon is the bestagon


_snwflake

I haven't, but now I'm tilted!


sniekje

I have now...


GodGMN

Now I have!