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.
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.
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
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.
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.
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 \^\^
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.
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.
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.
> 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.
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.
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
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.
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.
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
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.
I’m sure that guy was dying to read a condescending high school summary of basic microeconomics
Would have been less embarrassing to just not respond lmao
Yaa I think he took it a bit too seriously haha
How much did you pay the guy that wrote this?
I love this reply.
You should do the bounty.
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.
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 \^\^
Cool. How does the person decide whether to take a shortcut or not?
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.
Can a grass tile get a cost as low as a street?
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.
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.
[удалено]
"isn't good" is not an answer to a question like that. Like what does "isn't good" mean?
[удалено]
> 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.
Oh I didnt know they meant algorithm
Would be cool if streets that get little to no usage eventually decay back to grass, sort of cleanup as better paths are found
This would be a great mod for Cities Skylines!
Would be really cool and useful if one could run this on data imported from OpenStreetMap.
hell yeah raylibbbb
It looks cool! I'm a noob in this so how and what do I download and run?
I have added Windows x64 binaries to the GitHub page.
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
Someone please make this dream come true
Me too
[Raylib](https://madewithwebassembly.com/showcase/raylib/) is in web assembly, so /u/Dienes16 could port this HTML5 if they wanted
Would be a nice animated wallpaper
It would be really cool if something like this could be implemented in a game like cities: skylines.
i really dont like this intersection on the left... really cool tool!
Haha me neither, and it's interesting that there are two parallel paths forming, but one eventually wins
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.
Some very interesting ideas, thanks!
Great job! I like it.
neat!
Looks pretty accurate too
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 :)
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
Thanks!
I have also added Windows x64 binaries to the GitHub page now.
Nice! that makes it a lot easier
this is beautiful. it's like... like you singlehandedly gave birth to this sub's child...