Designing Roller Coasters with Artificial Intelligence | A Crash Course in Machine Learning

  Рет қаралды 148,977

Art of Engineering

Art of Engineering

Күн бұрын

Go to NordVPN.com/ArtofEngineering and use code ARTOFENGINEERING to get a 2-year plan plus 1 additional month with a huge discount. It’s risk-free with Nord’s 30-day money-back guarantee!
The Coaster AI program can be downloaded here:
/ coaster-ai-46937313
Follow me on Twitter:
/ aoengineering
Follow me on Facebook:
/ artofengineeringyt
Roller coaster footage by Coaster Hipster:
/ coasterhipster
Video Credits:
Copperhead Strike, Carowinds (4K Offride POV)
• NO COPYRIGHT Copperhea...
Afterburn, Carowinds (4K Offride POV)
• NO COPYRIGHT Afterburn...
Fury 325 - Carowinds (4K Offride POV)
• NO COPYRIGHT Fury 325 ...
Hangtime - Knott's Berry Farm (4K Offride POV)
• NO COPYRIGHT Hangtime ...
Fenix, Toverland (4K Offride POV)
• NO COPYRIGHT Fenix, To...
Intro Animation
• No Copyright, Copyrigh...
A.I. Brain Animation
• blocks human brain rev...
Tesla Model 3 Full Self Driving (60fps)
• Tesla Model 3 Full Sel...
Video Chapters:
00:00 Intro
02:02 Artificial Intelligence
03:23 Neural Network
05:36 Spline Generation
07:13 Physics Engine
08:20 Rating System
11:18 Machine Learning
14:28 Coaster AI
16:43 Sponsor
17:57 Outro
Music from Epidemic Sound:
www.epidemicsound.com/referra...
Learn how a VPN works:
• What is a VPN and how ...
#RollerCoasters #ArtificialIntelligence #ArtofEngineering

Пікірлер: 321
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Could artificial intelligence be the future of roller coaster design? What do you think? 👀
@anoymous2247
@anoymous2247 3 жыл бұрын
¯\_(ツ)_/¯
@connorhinson5942
@connorhinson5942 3 жыл бұрын
One thing that I think makes roller coasters so fun is the creativity that goes into the track layout. Computers can optimize air time or g forces, but they lack the creativity that only human engineers. It will be interesting to see if any professional company expands on your methods and ideas, because who knows how far this technology can go.
@torinstorkey
@torinstorkey 3 жыл бұрын
If you make it export a no limits coster in 3d then yes.
@notreally2406
@notreally2406 3 жыл бұрын
I don't think so... No... No, it can't.
@revimfadli4666
@revimfadli4666 3 жыл бұрын
If it collaborates with human designers, perhaps... I'm convinced that Taiga's first element was the result of someone messing around in fvd, trying to make a sideways airtime hill, then accidentally inputting a very large value for the roll
@DingleDangleSoup
@DingleDangleSoup 3 жыл бұрын
As a fellow engineer, you always simultaneously make me feel dumb and smart at the same time. Good video
@3akoscielski
@3akoscielski 3 жыл бұрын
I didn't realize how much stuff I forgot about from college until now hahaha
@rmc_fan
@rmc_fan 3 жыл бұрын
@DingleDangleSoup What kind of engineering do you work with? I am thinking about becoming one but I want to hear your thoughts about it. Is it hard? Is it fun? Let me know!
@Bofadeeznuzz
@Bofadeeznuzz 3 жыл бұрын
As a fellow 14 year old in 9th grade that’s failing 4 out of 7 classes, I wanna try to become a roller coaster engineer, I’m gonna work hard and work for theme parks😎
@rainitygmd
@rainitygmd 2 жыл бұрын
@@Bofadeeznuzz same
@Mellowbaton
@Mellowbaton 3 жыл бұрын
Came for roller coaster talk. Stayed for one of the best descriptions of neural networks I've ever heard
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thank you very much!
@MrGrebgnet
@MrGrebgnet 3 жыл бұрын
+1
@hodag
@hodag 3 жыл бұрын
This is the best simplified description on how neural networks work with the layers that I've ever seen. Fantastic.
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thank you, that really means a lot! I spent a lot of time trying to make the explanations as simple and easy-to-understand as possible.
@besknighter
@besknighter 3 жыл бұрын
@@ArtofEngineering And you did an amazing job 👏👏👏
@JamesTaylor6
@JamesTaylor6 3 жыл бұрын
This was very interesting even if it is slightly scary that a computer was coming up with new, creative elements I hadn't even considered before. Great video!
@AlsoFrightened0
@AlsoFrightened0 3 жыл бұрын
Personally (as a Data Scientist/AI expert and evangelist) I'm very interested to know: what is it about it that still scares you, even *after* the video "pulls away the curtain" so to speak and shows you the (very "dumb"; at least, nothing to argue for consciousness or will or anything like that in there) internal processes by which -- for a very specific task, with careful setup, data collection/creation, and parameter settings none of which can be done without human guidance -- a computer is able to exhibit some sort of skill or acuity or "intelligence" for some specific human ability? Basically deep learning, at the expense of clarity and explainability due to its hundreds or thousands of often minuscule parameters, provides what is pretty much an "infinitely learnable" function: as in, no matter what the underlying pattern is, because we have lots and lots of detailed data and because of how many knobs we can twiddle in the model and how many layers of abstraction/transformation are now feasible to compute (and because we now have an efficient way to train these models -- which we didn't for many years after they were conceived FWIW) *ANY* pattern can pretty much be found and modeled. Self-driving cars are just like this, but with different data and different outputs. So are industrial "smart" robots. But none of them can reason, or think (for example, picking a task to work on and independently coding itself), or explain why they do what they do -- that's all up to us. As is the danger of AI, which comes not from autonomous systems (where safety will always be a priority and at the end of the day they only act in the ways we tell them to, however complicated and convoluted that relationship has become...unintended consequences of a robot's actions are the fault of the humans who wrote its code not accounting for every scenario) but from *Assisted Intelligence*: humans with bad/criminal/violent intentions using and guiding AI to help them do many times the harm they otherwise would have been able to. As with most scientific or technological advancements, even though it might seem like magic to a layman or a non-expert, even though some may predict it will bring about the end of the world (shit, think about when nuclear energy/bombs first came on the scene!), it's up to us whether we turn it into a major benefit or a major harm.
@ObjectsInMotion
@ObjectsInMotion 3 жыл бұрын
@vctjkhme Humans don't need computers to rob other humans of dignity and autonomy. They do that anyway.
@illdeletethismusic
@illdeletethismusic Жыл бұрын
Think of what the AI does as a brainstorming session, except the things you"d consider too silly to say out loud, and the things the other people in the room consider too silly are all spoken and combined. Of course something unexpected comes out if you don"t have common sense filters.
@TheWolfXCIX
@TheWolfXCIX 3 жыл бұрын
As someone who has used MATLAB in university this is the most fascinating video I've ever seen on KZbin. This is just insanely cool, dissertation material!
@EweChewBrrr01
@EweChewBrrr01 3 жыл бұрын
5:28 "At this point you may be wondering what any of this has to do with designing a rollercoaster." Nope. Not even close to what I was wondering. I was wondering how you can use so many words I have known for years and arrange them in such a way that I have no idea what you are talking about.
@justjuniorjaw
@justjuniorjaw 3 жыл бұрын
In an alternate reality, this channel would have been called Art of Politics.
@morganpayette6489
@morganpayette6489 3 жыл бұрын
This is a really cool project! Genetic models do have a tendency to settle into local maxima, and can be really heavily influenced by their initial weights. The way you laid out your roller coaster data is structured a lot like time-series data. It might work well to use an efficient recurrent neural network or a transformer model. As well, vector embedding splines from a large pool could decrease the output dimensions, allowing a single network to process a larger coaster more easily. Excited to see how you adapt this to 3D!
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thank you! The quality of the initial weights is actually a big problem that I have been experiencing. I'm still learning a lot about A.I. and I will definitely give your suggestions a try. Others have also mentioned backpropagation, which I want to look into as well. Thanks for the input!
@YPOC
@YPOC 3 жыл бұрын
Can't believe this hasn't been sponsored by Weights & Biases, with the amount you've said that phrase during the video :D
@michaelbuckers
@michaelbuckers 3 жыл бұрын
Genetic algorithm users and people who find it amazing aren't weights&biases clientele, that company aims for serious AI designers not toy network aficionados.
@sh0gun98
@sh0gun98 3 жыл бұрын
10:33 That coaster with a high loop and large drop looks awesome; just needs another loop at the bottom.
@purplpasta
@purplpasta 3 жыл бұрын
Agreed! With some manual fine tuning I'd ride that
@kennarajora6532
@kennarajora6532 3 жыл бұрын
@@purplpasta Output of the best result is usually the combination of both human sense and machine learning.
@GuidoHaverkort
@GuidoHaverkort 3 жыл бұрын
14:37 wait you build that in matlab?! i just barely managed to create a program that optimizes the height of a dam against its volume lol
@KyrilPG
@KyrilPG 3 жыл бұрын
1:48 the top right element looks like the first dive of now defunct Drachenfire at Busch Gardens Williamsburg.
@realquadmoo
@realquadmoo 3 жыл бұрын
Keep us updated on this project, this was REALLY interesting, I can’t wait to see those 3D track layouts
@revimfadli4666
@revimfadli4666 3 жыл бұрын
1:47 the top left element inspired me to desigh a cobra roll with a wave turn in the middle 10:30 seems like the algorithm just reinvented Zonga/Thriller
@ztrumpet94
@ztrumpet94 3 жыл бұрын
Found your channel through this project on reddit. Great to see the video on it!
@benjaminjhobbs
@benjaminjhobbs 3 жыл бұрын
This is amazing! I look forward to hearing about future developments. In a previous video, you talked about profiling G-Force intensity for loops and other elements, perhaps that is another valuable output of this AI system. When you begin stringing elements together, it might be valuable to consider strategic lulls in intensity as well. Again, amazing work! Keep it up!
@victorperez217
@victorperez217 3 жыл бұрын
This is amazing and deserves so much credit ! You actually inspired me to create a simple HMI for controlling a drop tower. I did it as a project for my major here in Spain and the professor really liked it 😁. Thanks for your content !
@RodyDavis
@RodyDavis 3 жыл бұрын
Many of my guests in rollercoaster tycoon let me know when it is fun by jumping or throwing up when it is bad 👀
@jaredcottrell
@jaredcottrell 3 жыл бұрын
Wow, this is an awesome video - thank you so much for putting this together! Looking forward to seeing your next steps!
@ChrisPkmn
@ChrisPkmn 3 жыл бұрын
I've always wanted to design a roller coaster, not from an elements/inversions point of view, but starting off with what x,y forces the rider should experience in the middle row and then figuring out the track from there.
@L3onking
@L3onking 3 жыл бұрын
Just a thought but I used to play this game called Sim Coaster that had a Coaster building aspect where you could click auto build and it would figure out how it could finish the ride in the shortest possible way. I'm not sure if looking at the game files could help inspire you in refining your A.I
@ryancanny9783
@ryancanny9783 3 жыл бұрын
This video was awesome! I'm currently taking a machine learning class in college and I really enjoyed how you went into detail explaining neural networks and determining spline generation. I'll make sure to share this vid with people in my class. Thanks for posting and including the MATLAB code, I'll definitely play around with the file. This video is something to be proud of from research, coding, editing and educational background. I look forward to seeing more videos in the future!
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thanks so much! I'm sure you could take this a lot further with a background in computer science and machine learning. My background is actually in civil engineering, so I'm basically just learning as I go 😅
@Mar_Ten
@Mar_Ten 3 жыл бұрын
I dont know about coasters, but this was one of the best explainations of AI and machine learning I have seen in a long time. Also intresting you mention the problem of reaching a local maxima.
@Spessforce
@Spessforce 3 жыл бұрын
This is a really cool video. It will be neat to see what kind of track layouts it starts to generate when you feed the endpoint of the previous spline as the start for a new one so you can make complete coasters.
@MasterCivilEngineering
@MasterCivilEngineering 3 жыл бұрын
It is dear
@keco185
@keco185 3 жыл бұрын
You could try a GAN and feed in existing roller coaster designs to create a bot that can generate new designs
@osilc
@osilc 3 жыл бұрын
1:47 the model in the top left reminds me of the ‘Incredible Hulk’ coaster in Universal Studios Orlando.
@torezcoasters6043
@torezcoasters6043 3 жыл бұрын
Yes, that is a cobra roll which can actually be found on many coasters around the world, including Incredible Hulk.
@johnathanclayton2887
@johnathanclayton2887 3 жыл бұрын
Super cool video! Thanks for making the Matlab code available, it was fun to play with. I'm sorry that this video isn't doing well on views for some reason. I think it's a very interesting topic presented wonderfully. Thanks, and keep up the great work!
@a1919akelbo
@a1919akelbo 3 жыл бұрын
You could train it off a random path generation neural net with fitness points attributed to transitions from comfortable inverted positive G to comfortable level negative G, then have the boundary be the area you want the coaster in.
@a1919akelbo
@a1919akelbo 3 жыл бұрын
To add you could also have the boundary be bellow the starting climb (in all coasters) and when the rose coaster is generated, have the end point connected back to the start. Im sure if you ran this on steroids with a super computer and 1000000 generations you'd get some packed coasters
@Orinslayer
@Orinslayer 3 жыл бұрын
Listen, if the coaster doesn't stop my heart I don't want to ride it.
@EdeYOlorDSZs
@EdeYOlorDSZs 3 жыл бұрын
Great approach, almost all design choices make a lot of sense to me, I even learned something new about probabilistic mutation. Greatings from an AI grad from Amsterdam!
@LMinett
@LMinett 3 жыл бұрын
You explained the AI concepts really well; good work
@nathanb011
@nathanb011 3 жыл бұрын
This video taught be more about AI than every other video on AI I've watched. Amazing work and amazing teaching skills!
@Kruemo
@Kruemo 3 жыл бұрын
This video is an unexpectedly good intro to machine learning. Serioously. What seems to be a simple casually explained process contains a lot of sometimes hard to find information (especially how the clones a mutated).
@nickysixx2480
@nickysixx2480 3 жыл бұрын
This video was great, please upload more machine learning related engineering problems!
@TheEnde124
@TheEnde124 3 жыл бұрын
I just started a course in uni which covers data visualization, matrices, splines, matlab and machine learning. Makes me excited to see what skills and knowledge I aqcuire from this course, and hopefully I will be able to create something like this shown in the video :D
@codysewell5051
@codysewell5051 3 жыл бұрын
I just got my bachelors in Mechanical Engineering with Electrical Engineering minor, this just amazes me. Awesome stuff!
@willboler830
@willboler830 3 жыл бұрын
One of the ways you can set the parameters for your fitness function is to actually generate a set of "ranked" results given particular values (yes, can still be subjective but becomes manageable). Then, you can simply solve for an approximation to your fitness parameters that respects the ranking. This is a quick and dirty method to ensure that certain parameters do not overpower others. Say for instance, a tight small loop at high speeds produces extremely high and lethal G-forces, you know that that performs worse than a larger loop with lower and safer G-forces. The output fitness of the small loop should have a smaller fitness than the larger loop. You can generate several loops using this method and evaluate them qualitatively by ranking them, then quantitatively approximate a basic fitness model. Also, look into PSO for optimization. GA is good at selecting discrete choices. PSO is better and converges faster for continuous spaces.
@thefloridaman6527
@thefloridaman6527 3 жыл бұрын
Wow :o Much Respekt for this great Application :D Some of the elements look very interesting. I am excited to see, what happens, if one dimension is added.
@slavetotheseo4127
@slavetotheseo4127 3 жыл бұрын
The neural network description though...🔥🔥🔥
@davidjackowski4336
@davidjackowski4336 3 жыл бұрын
1:49 top left is basically "the Bat" from Canada's Wonderland. Just flattened.
@mic9657
@mic9657 3 жыл бұрын
Instant sub. Great work, and explained and presently superbly!
@emrazum
@emrazum 3 жыл бұрын
the main thing that makes roller coasters fun is short lines. But seriously, great explanation of what ML/AI are
@ilonachan
@ilonachan 3 жыл бұрын
Awesome project! One thing I thought of when you said that your network operates in segments: You'll probably want to give it some kind of memory, so it can make long-term plans for a design. That approach is called Recurrent Neural Network, and it will probably improve results in the long run
@MK-fg8hi
@MK-fg8hi 3 жыл бұрын
I would want to see that! For longer tracks, Transformer model could be the one to experiment with too -- also a sequential model, but with a longer memory span than RNNs (in practice) =) en.wikipedia.org/wiki/Transformer_(machine_learning_model)
@RainbowDemon
@RainbowDemon 3 жыл бұрын
Okay so the cobra roll with a humo and the modified loop which I’m calling the pumpkin loop cuz it looks like a pumpkin, look so fun and genius how have we never. The one on the right through is literally steel curtain
@JadetZXC
@JadetZXC 3 жыл бұрын
Thanks for such a lot of coverage in explanations. I'd avoided learning AI for long time, because nobody seems to get it. Now, after listening to this video, I start to get interested in the development.
@Exilum
@Exilum 3 жыл бұрын
As you use vectors for your splines, it should be possible to compute for each segment what direction (top / bottom) the coaster takes in a particular segment, assuming the coaster is either at the top or at the bottom at the start of the track. It should be a bit better than a loop to know when an inversion happened, and it can be integrated pretty easily into the rating system. (You pick an arbitrary distance, for example, 1. The coaster is represented by a two-dimensional vector, it is placed at the center of the segment, its direction is perpendicular to it and it's 1 unit long. So with each new angle, you can "turn" that vector by the same angle you did for the segment, then place it at the center of the new segment. By just checking its direction and comparing it to the previous, you can easily know whether an inversion happened. I think it's better than checking for a loop.)
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
The method you've described is almost exactly how the program checks for a loop. I've used the terms "loop" and "inversion" interchangeably - the inversion doesn't necessarily have to be loop-shaped.
@Exilum
@Exilum 3 жыл бұрын
@@ArtofEngineering ok. with the way you said loop I assumed you checked for each time the line crossed itself (while only counting the smallest total segment distance if overlapping), my bad. I stand corrected in my interpretation.
@connorhinson5942
@connorhinson5942 3 жыл бұрын
10:28 I'd recognize a Matlab/Simulink graph anywhere.
@bobingstern4448
@bobingstern4448 3 жыл бұрын
Yes
@Devinchy02
@Devinchy02 3 жыл бұрын
You explained how AI works better than many university professors. Good work man :)
@ThrillsofColdplay
@ThrillsofColdplay 2 жыл бұрын
I love imagining new elements on roller coasters
@rcmaniac25
@rcmaniac25 2 жыл бұрын
Very cool! Thank you for defining the difference between AI and ML. Too many places say AI and then just do a ML operations. I would be interesting in seeing if you actually get a full track generator. I also wonder if you can make a plugin to import/export for No Limits 2 to generate a better design using a pre-existing layout. Years ago, there was a plugin called Heartline generator for the original No Limits. You would design your coaster and, almost always, it would "pump" which would be sudden changes of direction. You would run the Heartline generator and it would smooth the track so that wouldn't happen. A similar thing can be seen in real coasters where, say, right before going into a banked turn, the track seems to have a small hill... then banks while dropping a bit down relative to track angle, do the turn... but seem to not be a flat banked turn but instead goes up and down a bit. You'll see those kinds of turns a lot on B&M coasters. It's basically trying to keep the rider's body in a simple smooth motion while moving the coaster car around... and often focusing on the riders' chests because too many Gs during a roll could cause them to black out. It's why some popular inversions are called "heartline rolls". To the original point, one of the hardest parts of making a ride is, well, making it work. You get an idea in mind for a layout and it just doesn't work out as you imagine. Your AI could take that as an influence, generate it's own spline but try to match the layout... if something falls out of constraints or physical possibility then ignore the original spline and generate it's own. But the whole time, adjust drops, angles, maybe throw an inversion or 2 in there (if physically possible for the coaster type). End up with that smooth, pump-free design that maximizes on everything you want while still having a resemblance to the original track layout. Bonus future points for following terrain, "near misses" with trees and supports, scenery, etc. Awesome work!
@TakUwU
@TakUwU 3 жыл бұрын
Really super interesting video, especially when you are interested in roller coasters and AI, the combination of the two is really very interesting! very good job both for the video and the program!
@D.Axtmann
@D.Axtmann 3 жыл бұрын
I'd love to see a follow-up for the 3D version :D
@elimcgamerguy
@elimcgamerguy 3 жыл бұрын
I'd love to see what an AI would do in Roller Coaster Tycoon. that's kinda 3d, right?
@radenoof7845
@radenoof7845 3 жыл бұрын
I love this content, you deserve so much more views!
@amaarquadri
@amaarquadri 3 жыл бұрын
Cool video! I think it might be a good idea to try a recurrent neural network. That way, it has some sort of "memory" can can better formulate long term plans of the roller coaster outline.
@ForestCinema
@ForestCinema 3 жыл бұрын
I feel like if this were 3D, and you were able to “seed” it with real coaster designs, along with rider data (both real-time body sensor data and rider surveys on the various elements) for those coasters, it could rather quickly find some more ideally optimized and novel element designs, and even advise on combinations/overall “ebb and flow” of a ride.
@seraphina985
@seraphina985 3 жыл бұрын
Indeed also a better way to figure out what is likely to be fun would perhaps be to train a discriminator based on human feedback. To make the most of the limited time of the human and let training proceed as fast as possible this is usually done by training a network to predict what fraction of the target audience would prefer the design over another selected at random. Simultaneously you grab examples where the network trying to learn what humans like has low confidence and by randomly selecting 2 at a time present them to humans in the target audience to pick which they prefer. This can be quite good at learning patterns of subjective preferences that humans are good at evaluating but bad at meaningfully explaining why especially in any way that could be quantified. Essentially it can be used to tag the examples with a score in the form of what fraction of randomly selected matchups it would be predicted to win and the statistical confidence value, this can then be used to train a neural network to predict these values and those scores used to train the main network. This process can of course be repeated by feeding newly tagged outputs back into the training data set and retraining the network to hopefully better discriminate between designs that "look fun" to the target audience or at least your sample group and designs that don't. How well this will reflect the actual preferences of the target audience is of course also limited by the quality of your sampling methods in picking humans to rate designs.
@twistedgwazi5727
@twistedgwazi5727 3 жыл бұрын
Amazing video! I think what you could do as part of making this AI more advanced is make it so it doesn't exceed temporal g-force limits; basically making sure the forces aren't too sustained, using the industry standard g-force limits in ASTM F2291. You could also try and give the algorithm an incentive for varying the forces on the ride to keep the coaster exciting.
@devon9075
@devon9075 3 жыл бұрын
Have you tried making the added Loop function correlate to the other parameters? If you make the loop function dependent on coefficients used for calculating the other utility parameters, then you should find the sum of those coefficients, when I held to some maximum (youd have to play with this value but it will be some value between 0 and 1), will result in a loop function who's value doesn't overrun the other utility parameters.
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
That's a good suggestion, I will definitely try that out!
@goofytycooner5519
@goofytycooner5519 3 жыл бұрын
2:50 (Arrow mega loopers sweating in the background)
@colinsmith5163
@colinsmith5163 3 жыл бұрын
I've been thinking about your program. If you have the top limit set as a downward slop representing lost potential energy over time you get the max length from a given drop height. Then break the layout into segments represented by this program and you get one line representing a 2D coaster. After that you'd have to make another program to design the coaster from the top down with limits such as straight track for stations, breaks, and lift/launch areas. GCI used to design layouts as a 2D line where they added the turns in later. I don't know much about coding but if you implement those ideas into your program you might be able to get an AI to make an idea of a coaster. I don't think an AI coaster would work practically, but with how far along machine learning is already I have no idea what the future holds
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thanks for the suggestion! That's a really interesting approach I hadn't thought of before, and I think it could be a good way to generate designs in 3D.
@Zsullivan27
@Zsullivan27 2 жыл бұрын
1:48 Love that element on the top left.
@Craichy
@Craichy 3 жыл бұрын
Dude, your videos are awesome. Thanks for what you do
@XDRosenheim
@XDRosenheim 3 жыл бұрын
This is the first video I have seen that actually tries to explain a neural network. Most others just go "We have an input, some computation in the middle, and are given an output".
@broosc
@broosc 3 жыл бұрын
I think it could be really cool if you made a visual indicador that simulates what a train riding on the track would look like, it could simply be a red line that goes along the track at the calculated velocity and maybe there could even be a vector showing what the G-force on the train looks like
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thanks for the suggestion, I really like that idea!
@broosc
@broosc 3 жыл бұрын
Incredibly interesting video, I'm excited to see where you go from here
@user-pw5do6tu7i
@user-pw5do6tu7i 3 жыл бұрын
When it comes to this kind of stuff there only ever seems to be very basic explanations. But this guy did very well
@PleeseCallMeDan
@PleeseCallMeDan 3 жыл бұрын
Incredible video. I can tell this one took some time too!
@Daniel-ci4vt
@Daniel-ci4vt 3 жыл бұрын
Cool stuff, I'd love to see more on this!
@ricardovaladas2897
@ricardovaladas2897 3 жыл бұрын
Incredible video! Really enjoyed it, thanks!
@biltrex
@biltrex 3 жыл бұрын
Interesting topic for AI to cover, and great explanation of genetic algorithms!
@Mr0ABCD1
@Mr0ABCD1 3 жыл бұрын
Great explanation and illustration! You might as well write it into a journal article as an application of physics-guided machine learning :)
@freundlichermensch7540
@freundlichermensch7540 3 жыл бұрын
Werner Stengel is going to be retired by an AI. It is fascinating to think, how a computer could solve some design challenges, like most track on a given land, maximizing (total) air time or just cost reduction but still proving a similar level of thrill.
@appa609
@appa609 3 жыл бұрын
"A node that violates energy conservation..." Pretty sure you're supposed to eliminate that when coding the physics...
@Superduck120
@Superduck120 2 жыл бұрын
I’d have to think that the deduction the bot gets for violating energy conservation would make it’s score too low to make it to the next generation and avoid the final design violating energy conservation
@Travisrogers87
@Travisrogers87 2 жыл бұрын
“Unfortunately there’s no mathematical equation that can determine how fun a roller coaster is based on its physical attributes” - roller coaster tycoon would beg to differ 😂 great video!
@e.g.o.m.e
@e.g.o.m.e 3 жыл бұрын
This looks like a cool channel, oh wait I'm already subscribed lol
@rubianvangool3671
@rubianvangool3671 3 жыл бұрын
yes, finally a propper excuse to build another awesome knex roller coaster. one combining 2 of my favorite things: constructions and computer science
@syncRamon
@syncRamon 3 жыл бұрын
This is such a good ai-explaining video!
@reddcube
@reddcube 3 жыл бұрын
For inversions, you usually also had a reduction in velocity. Does your rating system's loop bonus work well at offsetting the velocity penalty?
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
As long as the velocity stays above a minimum value throughout the loop then there shouldn't be a penalty, however velocity will have a smaller contribution to the total score. The loop bonus needs to be high enough to override all the other parameters at the beginning, and once a loop is generated, the other parameters can then be used to fine-tune the shape.
@timseguine2
@timseguine2 3 жыл бұрын
Suggestion to improve your rating system: add a term that is calculated by a separate neural network. There is a fairly new technique that involves training a loss function by presenting humans with pairs of candidates and letting them select which one is better. This training data can be used to train a loss function that will assign losses that agree with the human's subjective ranking
@FilipovicMarko
@FilipovicMarko 3 жыл бұрын
Amazing effort!
@ArrakisMusicOfficial
@ArrakisMusicOfficial 3 жыл бұрын
5:05 this bit is actually misleading. You do not use non-linearities (tanh, sigmoid, relu) because they help you with convergence, you use them because without them a multi-layer linear network is just as good as a single linear output layer (because composition of linear transformations can be expressed as a linear transformations). So without the nonlinearities, you have linear regression, trained by SGD, so they are an integral component to what neural networks are, not a neat trick to make convergence faster or more stable.
@lukehallmedia
@lukehallmedia 3 жыл бұрын
Truly fascinating
@PerfectlyNormalBeast
@PerfectlyNormalBeast 3 жыл бұрын
I'm only at 2 min, so you may do something like this, but: What if periods of low g, high g, rate of change of g are converted into something resembling notes So the act of riding a coaster would be like a musical clip Then, things like: too boring, too chaotic, etc could be learned and used in the evaluation function
@PerfectlyNormalBeast
@PerfectlyNormalBeast 3 жыл бұрын
A good mix of anticipation/release
@IlllIIIlllIIIlll
@IlllIIIlllIIIlll 3 жыл бұрын
Cool project :) 1. Question: Rating System Why did you decide to deduct, if certain parameters were out of bounds? Why not simply discard that spline altogether, since the AI could come to a solution where a person would die at one point due to G-Forces, but the rest of the roller coaster would be super fun.
@Elywely
@Elywely 3 жыл бұрын
Great work! I have a question, have you considered using Recurrent Neural Networks for this problem? Maybe the model can capture better patterns knowing previous splines.
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thank you! I am currently looking into recurrent neural networks and other options to see what will give the best results.
@TheGEEKofGAME
@TheGEEKofGAME 3 жыл бұрын
Before you read my comments, I apologize for my bad English level. For the rating of a coaster, what happen if you reverse you AI program with as an input a real existing coaster, I explain what I have in head: You give to the AI différents “Blueprint” with a score that you determine by your self, so you show the AI what a good coaster is and what a bad one is, so it could learned his own rating system ? I know it’s not that easy but it an other approach. Ciao 👋🏻 continue your fantastic work.
@wagbagsag
@wagbagsag 3 жыл бұрын
AI PhD student here: one very easy change you may wish to make is feeding in multiple previous segments to the network. with the current approach, every time the network is fed the same previous segment, it will generate the same next segment because it has no context about what was going on before, which yields repetitive coasters.
@wagbagsag
@wagbagsag 3 жыл бұрын
A few more ideas: - hold on the to the best few nets from the evolutionary algorithm, and use them at random to generate the coaster. this will also mitigate repetition without significantly diminishing performance - you can use gradient descent here if you wish: generate a random coaster, evaluate it under your score (which i believe is differentiable), back-prop all the way to the weights
@ArtofEngineering
@ArtofEngineering 3 жыл бұрын
Thanks for the suggestions, I appreciate your input! I will definitely try this for the next iteration of the program.
@tbc...
@tbc... 3 жыл бұрын
This video is a combination of the two things in the world that I love.
@nanderv
@nanderv 3 жыл бұрын
You could also use Rollercoaster Tycoon 2 as a backend to test the fun factor of a rollercoaster.
@ThrillsofColdplay
@ThrillsofColdplay 2 жыл бұрын
This is very satisfying
@ricardogonzalezcastillo6932
@ricardogonzalezcastillo6932 3 жыл бұрын
Did you consider using instead of Genetic Algorithms to use Reinforcement Learning perhaps? As having already a score function could ease the development of it, and could make this type of learning very suitable for the problem
@bananogamer6972
@bananogamer6972 3 жыл бұрын
You could program a bit that recreates the 3d one in planet coaster
@xaytana
@xaytana 3 жыл бұрын
You could probably make a very simplistic 3D variant of Coaster AI by taking what you're doing for vertical movement in X-Y 2D and apply that to horizontal movement in X-Z 2D, then combine the two; closed loops included, as many coasters do have spirals. Combine this with a third set to account for twist in the track, for banked turns, corkscrews, or just more efficiency in the more obscure track designs generated. Combining the first two, X-Y movement and X-Z movement, into a singular X-Y-Z vector change with restrictions shouldn't be overly difficult, adding an additional rotational axis of A may impose some difficulty though, unless it's mostly used as a post-process 'smoothing' tool. Though, when getting into 3D movement, it might be more worthwhile to look into quaternion movement of the object, instead of vectors and splines. This would give you all the movement you need, X-Y plane rotation would give you the up/down movement, X-Z plane rotation would give you turns, and Y-Z rotation would give you rotation that can lead into banked turns and such. The object would always have a vector of a defined X-positive movement relative to the object, as the planes are relative to the object and not the world; e.g. the relative planes are manipulated as the object is manipulated. This then can generate a spline within the world's planes as the translation of the object leaves a trail of connect-the-dots with relative information on twist within the track. First idea is very rudimentary and builds on what already exists. Second idea would lead to more refinement as, with all things in 3D, quaternions are generally the answer, and may end up with cleaner equations in the end. Honestly, the only real test of which would be the better algorithm is to see which one produces a corkscrew properly on their own, not only which is first but also which has the better corkscrew within an allotted generations after their first is produced; similar to Coaster AI producing teardrop loops that more or less match the differential equation for such loops on its own. Anything past initial theory of how a spline can be designed, I have no input on when suggesting this could be translated to 3D. More or less, Coaster AI could be expanded to 3D based on what it's already doing, just with a change in point of view and combining those points of view into a singular 3D vector, though changing reference to the object and using quaternions and a path of dots may more efficiently produce a 3D spline for this use.
@chungyeungvideo
@chungyeungvideo 3 жыл бұрын
can this be possible to archive with deep reinforcement learning? while getting the reward with exploration on each section.
@AsBartekMiner
@AsBartekMiner 3 жыл бұрын
I might be wrong, but is making it into 3d seems relatively easy given what you already did here? NN with extra inputs (x,y,h) not just (height) has to return two outputs, angles in spherical coordinates (since r seems to be fixed). I bet there is an physics engine in matlab that can calculate all variableds you need in 3d. Then we are left with adding some extra constrains like track width and minimal distance between tracks (so there are no collisions). They sould be rather easy to implement. I might be oversimplifying something, I'm not sure, let me know. I just love the idea and would love to see transition into 3d.
@michaelneichel9543
@michaelneichel9543 3 жыл бұрын
I miss in the programming some restriction of the radius of the curves. Coaster Trains can't go into a too small dip or over a too sharp hill.
@vanderkarl3927
@vanderkarl3927 3 жыл бұрын
This is awesome! A fantastic proof of concept. Now we just need to make it 3d, gather data from every roller coaster in the world, create a simulation which can subject the AI's designs to (reasonable) variations in physics parameters, and teach the AI to deduce just what is "fun" about human designed coasters! Unfortunately, that's not quite feasible, probably. Even if we had sufficient data for every coaster, it would likely not be a large enough data set, and training to a good degree on even a small data set would likely take far too long. We can dream, though.
@bananogamer6972
@bananogamer6972 3 жыл бұрын
It's awesome, for the 3d if you don't add the bank of the track should be relatively easy
@MiyukiLily
@MiyukiLily 3 жыл бұрын
Amazing Video
@oisiaa
@oisiaa 3 жыл бұрын
Videos like this (and millions of others) are why the 21st century will have exponential growth in human intelligence.
@williamrutherford553
@williamrutherford553 3 жыл бұрын
Really like the idea, great application of Machine Learning. I have a couple gripes, though. It seems like you're using a super basic neural net, but you probably something with memory. As it stands, the AI is just generating random chunks where-ever it currently is, if you want a full coaster, it needs some kind of memory of what it created in the past. The issue being that if the AI starts off on a sub-optimal path, they are forced to continue it to it's conclusion, so you might not always find the "optimal" solution. Also, at the end you said you could convert the track layout to other software. For a full 3D one, you might want to look at doing the reverse. Take a track layout, and teach it to the network. Good training data is hugely important for Machine Learning, and will give the AI I good starting point. I think that might fix your problem with loops, seeing as many popular coasters definitely have inversions and loops. Lastly, you might want to look into adversarial networks instead of genetic ones. Having a generating and a scoring system is kinda the basis of adversarial networks, you just have a generator AND a scorer that is an AI. In this case with assigning it a "score" it might be a bit different than usual. That would be another reason to import coasters, the usual method of Generative Adversarial Networks is based on telling the difference between Human designed and Robot designed rollercoasters. The Discriminator tries to guess which it is, and the AI constantly updates to create coasters that are harder and harder to tell apart from Human ones. Love the project, I'm definitely subbing to see any updates in the future!
The AI Hardware Problem
13:26
New Mind
Рет қаралды 526 М.
But what is a neural network? | Chapter 1, Deep learning
18:40
3Blue1Brown
Рет қаралды 16 МЛН
INO IS A KIND ALIEN😂
00:45
INO
Рет қаралды 22 МЛН
The Real Physics of Roller Coaster Loops
18:03
Art of Engineering
Рет қаралды 187 М.
Reinforcement Learning: Machine Learning Meets Control Theory
26:03
Steve Brunton
Рет қаралды 249 М.
Building an AI GENERATED Rollercoaster??
9:56
DigitalDan
Рет қаралды 131 М.
How Disney's Test Track Works
18:08
Art of Engineering
Рет қаралды 387 М.
How SpaceX Lands Rockets with Astonishing Accuracy
10:45
Art of Engineering
Рет қаралды 3,6 МЛН
A.I.  teaches itself to drive in Trackmania
15:04
Yosh
Рет қаралды 4,8 МЛН
Why Roller Coasters Click
12:01
Art of Engineering
Рет қаралды 505 М.
Can An AI Design Our Tax Policy? 💰📊
5:15
Two Minute Papers
Рет қаралды 521 М.
How rollercoasters affect your body - Brian D. Avery
5:02
TED-Ed
Рет қаралды 2,4 МЛН
What % of charge do you have on phone?🔋
0:11
Diana Belitskay
Рет қаралды 182 М.
Эффект Карбонаро и бумажный телефон
1:01
История одного вокалиста
Рет қаралды 12 М.
Клавиатура vs геймпад vs руль
0:47
Balance
Рет қаралды 961 М.
САМЫЙ дешевый ПК с OZON на RTX 4070
16:16
Мой Компьютер
Рет қаралды 107 М.
APPLE УБИЛА ЕГО - iMac 27 5K
19:34
ЗЕ МАККЕРС
Рет қаралды 77 М.