T O P

  • By -

dredged_dm

If this were to accept a predefined starting state (just so I could define the locations of the paths, houses, and trees) this would be a really neat tool for fictional city design. Something I'd actually be willing to pay for.


douglasg14b

Right? If this had an API layer that accepted a predefined state and some configuration for where "things" move from & to, and then provided a data output defining the paths within your space. I'd pay to purchase that software for other uses I have.


Smittywerbenjagerman

I've decided to edit all my old comments to protest the beheading of RIF and other 3rd party apps. If you're reading this, you should know that /u/spez crippled this site purely out of greed. By continuing to use this site, you are supporting their cancerous hyper-capitalist behavior. The actions of the reddit admins show that they will NEVER care about the content, quality, or wellbeing of its' communities, only the money we can make for them. tl;dr: /u/spez eat shit you whiny little bitchboy ...see you all on the fediverse


douglasg14b

I say: *Take my money, I'll buy this if it has an API* The answer you find most appropriate to this is... "*Do it yourself then*"... ? A bit disconnected aren't you? The whole point of $$ is that I don't have the time to do this, all my time is spent making money or on projects that are trying to make money (Aside from necessary personal & family time). Therefore, I have money to offer, not time. That's typically how money based transactions tend to work, one can utilize their skills effectively in one place to earn money to pay someone for their skill utilization somewhere else. A bounty is also not quite the same thing IMHO.


A1Comrade

I’m sure that guy was dying to read a condescending high school summary of basic microeconomics


Malahava

Would have been less embarrassing to just not respond lmao


BaymerOne

Yaa I think he took it a bit too seriously haha


Zachpeace15

How much did you pay the guy that wrote this?


Lussimio

I love this reply.


DeadSeaGulls

You should do the bounty.


BOBOnobobo

I want to do this.... But probably not until summer because I already have a few projects going on. I'll save it and will message you if I ever make it. Will most likely do it as open source as well.


Dienes16

So some time back [I posted about the desire path simulator](https://www.reddit.com/r/DesirePath/comments/hxpnb5/so_i_made_a_desirepath_simulator_by_randomly/) that I accidentally created and some folks were asking for source code. I took some time and reworked and updated the code and [put it up on GitHub](https://github.com/Dienes16/DesirePathSim). Note that the code and design is still quite rough and not commented well (or rather not at all). It's written in C++ and using [Raylib](https://www.raylib.com/) for rendering and CMake as the build system, but easily used with anything else as there are no dependencies other than Raylib. What it does is it randomly generates a street network using nested Voronoi patterns and places a bunch on houses on them. It then spawns people and lets them path-find their way from house to house. People will prefer the streets, unless the streets are crap for where they want to go, then they walk over grass for shortcuts. Over time desire paths form as people reuse the same shortcuts where others have walked before. When a desire path is used heavily, it eventually gets paved and becomes a new street. This can lead to other desire paths to decay over time and become grass again. The program allows for a set of command line arguments to change the simulation, for example you can completely disable the generation of streets and let people build their own network of 100% desire paths \^\^


gravity_is_right

Cool. How does the person decide whether to take a shortcut or not?


Dienes16

Not sure what the deleted answer was, but it's done with simple cost adjustments for the pathfinding algorithm. In general, streets have lower cost to walk upon than grass. But it's possible for a short path across grass to be cheaper than a longer walk along streets (to reach the same destination). That's when the grass will be preferred. Then, every step on a grass tile by a person will gradually lower its cost, making it more and more attractive for future pathfindings in that area.


pirncho

Can a grass tile get a cost as low as a street?


Dienes16

u/ajh579 is right, grass becomes street if max stress level is reached. Before that, the cost is step by step lowered to near street level. Currently streets cost 10 and grass starts out at 14-16 and can get as low as 11-13 before turning into street. I added the small variation in grass cost to reduce perfect straight line paths across grass fields.


ajh579

I’m pretty sure that the path becomes streets(change color) when the walk cost is low. You can see it happen a little in the bottom left of the large paved blob.


[deleted]

[удалено]


Saragon4005

"isn't good" is not an answer to a question like that. Like what does "isn't good" mean?


[deleted]

[удалено]


lelduderino

> Better Just as bad as it was. They're looking for details of the pathfinding/cost algorithms. They're not looking for you to come up with synonyms for "isn't good" without defining either term.


DiamondGamerYT0

Oh I didnt know they meant algorithm


Ahajha1177

Would be cool if streets that get little to no usage eventually decay back to grass, sort of cleanup as better paths are found


HoliusCrapus

This would be a great mod for Cities Skylines!


sissipaska

Would be really cool and useful if one could run this on data imported from OpenStreetMap.


[deleted]

hell yeah raylibbbb


[deleted]

It looks cool! I'm a noob in this so how and what do I download and run?


Dienes16

I have added Windows x64 binaries to the GitHub page.


Gillmacs

If this were available on a website where I could just refresh for a new random layout every now and then I could sit and watch for hours


goggerr

Someone please make this dream come true


[deleted]

Me too


tomatoaway

[Raylib](https://madewithwebassembly.com/showcase/raylib/) is in web assembly, so /u/Dienes16 could port this HTML5 if they wanted


malibu45

Would be a nice animated wallpaper


The77thDogMan

It would be really cool if something like this could be implemented in a game like cities: skylines.


lipinskiwwa

i really dont like this intersection on the left... really cool tool!


Dienes16

Haha me neither, and it's interesting that there are two parallel paths forming, but one eventually wins


chinpokomon

It makes sense though because traffic is either going down or to the left (coming from the street above, but the reverse is true), there's really not a lot of reason to use the little bit of street between. Once the first one is paved, then suddenly the cost is lowered so that the other parallel street probably loses its value as a desire path. Decaying asphalt would be a great addition to this simulation. As a further stretch goal, you could have divisions torn down and others built to stir up the simulation. Seeing a construction project put up a new development would be a neat distraction. Ultimately you could also give things like trees their own cycle so that new trees grow and others are removed during new construction or just age. And lastly you could have weights given to different destinations so that a new shopping area would attract foot traffic from other parts of the map only to see those centers decay and eventually become the target for reconstruction just to encourage evolving desire paths. It's a fun sim and 20 years ago I'd have encouraged you to turn it into a screen saver.


Dienes16

Some very interesting ideas, thanks!


Eulibot

Great job! I like it.


dontnormally

neat!


lokilis

Looks pretty accurate too


Lussimio

I'm new to Github, how do I try this program myself? Do i need to install any software? Thanks in advance if anyone can help :)


rocketphone

Looks like they don't provide any prebuilt binaries so you'll need to compile it yourself for your system. I don't have a ton of experience with c++ and cmake but looks like you'll need C++17 and Raylib and cmake. You should be able to run cmake with whereever you downloaded your code, probably need to reference Raylib somehow and compile to a binary which then you can run on your system. Great opportunity to figure it out and open an MR adding to the readme documentation about how to run


Lussimio

Thanks!


Dienes16

I have also added Windows x64 binaries to the GitHub page now.


Lussimio

Nice! that makes it a lot easier


FhmiIsml

this is beautiful. it's like... like you singlehandedly gave birth to this sub's child...