Coding Adventure: Ray MarchingSebastian Lague2019-04-02 | In this coding adventure I explore ray marching and signed distance functions to draw funky things!
If you're enjoying these videos and would like to support me in creating more, you can become a patron here: patreon.com/SebastianLague
Music from https://filmmusic.io: "Supernatural" and "Hiding Your Reality" by Kevin MacLeod (incompetech.com) Licence: CC BY (http://creativecommons.org/licenses/by/4.0)Coding Adventure: Sound (and the Fourier Transform)Sebastian Lague2024-08-10 | Some small experiments with sound, and learning how to break signals down into their component frequencies by implementing the Discrete Fourier Transform.
Chapters: 00:00 Intro 00:48 Dot Wav 03:05 Waveform 04:24 Playing a Sound 05:03 Wave Simulation 10:31 Speed Change 12:38 Signal Generation 17:14 Fourier Vis (single frequency) 23:31 Fourier Vis (multiple frequencies) 28:01 First Attempt at DFT 31:39 The Nyquist Rate 35:14 Frequency Resolution 37:25 DFT Implementation 39:31 Testing the DFT Function 42:41 OutroCoding Adventure: Optimizing a Ray Tracer (by building a BVH)Sebastian Lague2024-06-12 | Trying to speed up the ray tracer (from a previous coding adventure) so that we can render some more intricate scenes!
Chapters: 00:00 Intro 00:30 Triangle-Test Debug View 03:34 Bounding Boxes Inside of Bounding Boxes 04:41 Building a BVH 07:41 Traversing the BVH 09:13 GPU-Friendly Data 15:32 Converting Recursion to Iteration 18:06 Box-Test Debug View 21:42 Increasing the Depth of the BVH 25:11 Distance Test and Child Ordering 31:47 The Surface Area Heuristic 37:19 Speeding up the Construction 38:57 32-Byte Nodes 42:20 Transformations 45:10 Supporting Multiple Models 48:45 Some Tests and Final ThoughtsCoding Adventure: Rendering TextSebastian Lague2024-04-13 | This... is text! Let's figure out how to draw it. Starring: Bézier curves and (oh so many) floating point problems.
Chapters 0:00:00 Intro 0:01:58 The Font Directory 0:04:27 Loading Simple Glyphs 0:10:42 Bézier Basics 0:13:42 The Character Map 0:15:47 Implied Points 0:18:11 Compound Glyphs 0:20:25 Size and Spacing 0:21:27 Rendering Glyphs with Lots of Triangles 0:22:17 Optimized Curve Rendering (Loop-Blinn) 0:28:20 A Brief Look at SDF Rendering 0:30:33 The Counting Method 0:31:48 Ray-Bézier Intersections 0:34:09 Point in Glyph Test 0:36:35 Shader Time 0:38:37 Floating Point Problems 0:41:22 The Evil Artifact Detector 0:45:36 The Closest Curve Method 0:50:48 Curve Splitting 0:54:31 Defeating the Evil Artifacts 0:58:58 Anti-Aliasing 1:02:47 Performance and Legibility 1:05:11 The Counting Method Returns 1:09:45 OutroBad Apple but its a Fluid SimulationSebastian Lague2024-01-03 | I tried rendering Bad Apple inside of a particle-based fluid simulation. (I recommend watching in 4K if you can, as video compression is not overly friendly towards all the little dots!)
Credits: Music by Alstroemeria Records (feat nomico): youtube.com/watch?v=i41KoE0iMYU Animation by あにら (Anira). Specifically, I used this version: youtube.com/watch?v=FtutLA63Cp8I Ran a Chess Programming Tournament, Heres How it Went!Sebastian Lague2023-12-18 | Let's have a look at the creative code behind some of the bots, watch their games, and find out who will ultimately emerge victorious.
TCEC 4K Info: If you're interesting in taking part in the 4K tournament I mentioned, I recommend joining the TCEC discord linked on chessdom.org and enquiring about it there. You can also read more about the event here: wiki.chessdom.org/TCEC_4k_Rules
Chapters 0:00:00 Challenge Overview 0:01:09 Some Exploits and Disqualifications 0:02:58 Beginning the Tournament 0:03:58 [Bot] Turochamp (Faithful) 0:06:28 [Bot] WhateverBot 0:08:18 [Game] Turochamp (Faithful) vs WhateverBot 0:09:35 [Game] Pawntress vs WhateverBot 0:10:30 [Bot] applemethod-orz 0:11:42 [Bot] Igris 0:13:19 [Game] applemethod-orz vs Igris 0:14:32 Token Plot 0:15:06 [Bot] BadAppleBot 0:17:30 [Bot] 200 Tokens Monstrosity 0:20:18 [Bot] Baby Squid 0:21:38 [Game] 200 Tokens Monstrosity vs Baby Squid 0:23:19 Tiebreak System 0:23:39 [Bot] TinyHugeBot 0:25:45 [Game] TinyHugeBot vs 200 Tokens Monstrosity 0:26:26 [Bot] Electric Shockwave Gambit 0:28:11 [Bot] SimpleMCTS 0:30:23 [Game] SimpleMCTS vs Electric Shockwave Gambit 0:31:30 [Game] Phoenix Chess vs SimpleMCTS 0:32:28 [Bot] ILVM 0:33:45 [Bot] Les Moutons 0:34:40 [Game] Les Moutons vs ILVM 0:35:51 [Bot] NNBot 0:38:09 [Bot] Game Tech Explained 0:38:41 [Game] NNBot vs Game Tech Explained 0:39:27 [Bot] King Gambot IV 0:41:21 [Game] King Gambot IV vs ILVM 0:41:51 [Game] King Gambot IV vs NNBot 0:42:22 Swiss Results 0:43:32 [Knockout Game] Board 1, Round of 64 0:44:27 [Knockout Game] Board 2, Round of 64 0:46:02 [Knockout Game] Board 9, Round of 64 0:47:43 [Knockout Game] Board 3, Round of 32 0:48:30 [Knockout Game] Board 4, Round of 32 0:49:31 Piece Square Table Compression 0:50:48 Round of 16 Results 0:51:14 [Bot] Tyrant’s V9 0:51:55 [Knockout Game] Board 2, Quarterfinals 0:54:40 [Knockout Game] Board 1, Semifinals 0:56:43 [Knockout Game] Board 2, Semifinals 0:58:56 [Bot] Finalist A 1:06:00 [Final Round] Game 1 1:08:56 [Bot] Finalist B 1:14:05 [Final Round] Game 2 1:15:57 Final Results and Closing Ceremony 1:16:52 [Game] Tournament Winner vs Coding Adventure BotCoding Adventure: Simulating FluidsSebastian Lague2023-10-08 | Let's try to convince a bunch of particles to behave (at least somewhat) like water. Written in C# and HLSL, and running inside the Unity engine.
Chapters: 0:00 Intro 0:27 Gravity and Collisions 2:31 Smoothed Particles 3:55 Calculating Density 7:53 The Interpolation Equation 11:58 Gradient Calculations 15:38 The Pressure Force 19:19 Trying to Make it Work... 22:05 Optimizing Particle Lookups 26:31 Spatial Grid Code 27:48 Position Predictions 30:32 Mouse Force 33:22 Artificial Viscosity 36:46 Pressure Problems 39:51 Bugs 41:06 Parallel Sorting 43:22 Some Tests and Experiments 44:47 The Third Dimension 47:23 OutroCoding Challenge Announcement: Tiny Chess BotsSebastian Lague2023-07-21 | Hello! Here's a little coding challenge for anyone who'd like to take part: you have until October 1st to create a tiny chess bot in C# using the framework linked below. You can find more details about the challenge on that page as well. github.com/SebLague/Chess-Challenge
Chapters: 0:00 Intro 0:28 MyBot.cs 1:10 Bot Brain Capacity 2:43 The Tournament 3:08 How to Participate 5:00 Outro
Music credits: A Gentle Pulse by Imprismed The Cliffs by Trevor Kowalski Forest Overture by Yehezkel RazCoding Adventure: Making a Better Chess BotSebastian Lague2023-06-30 | Trying to improve an old chess bot by experimenting with various interesting techniques. You can play (or watch) the bot on lichess: lichess.org/@/CodingAdventureBot/playing This is a sequel to: youtu.be/U4ogK0MIzqk
If you'd like to support my work (and get early access to new videos and projects) you can become a patron of the channel over here: patreon.com/SebastianLague
Chapters: 00:00 Intro 00:38 Battle of the Bots 03:18 Maybe Don’t Throw Away the Best Move? 07:13 Transposition Troubles 10:55 Search Extensions 14:01 Refactoring and Recapping 15:51 Tweaking Kings and Pawns 19:35 Bitboards! 23:54 Passed Pawns (and more) 28:32 Magic Bitboards (minus the magic) 34:40 The Magical Part of Magic Bitboards 39:00 Testing and Optimizing Move Generation 41:50 Killers, Reductions, and Repetitions 45:56 Creating a Lichess Bot 49:30 Let’s Play! 54:54 Existential Crisis 55:02 The Bot’s First Game Online 56:12 Can Our Bot Beat Stockfish? (No) 56:59 Rating Speculation 59:28 OutroAnswering Your QuestionsSebastian Lague2023-05-26 | Let's talk about some stuff! My process for creating videos, unfinished projects, thoughts on Godot, and more.
Chapters: 0:00 Intro 0:13 Video Creation Process 3:53 Creating Visualizations 11:50 Unfinished Projects 15:12 Learning Godot 18:35 Compute Shaders in Godot 23:48 Favourite Number 24:02 First Game Engine 26:55 Four Quick Questions 28:38 OutroCoding Adventure: Ray TracingSebastian Lague2023-04-01 | I tried creating a custom ray/path tracing renderer. Featuring: maths, shaders, and cats! This project was written in C# and HLSL, and uses the Unity game engine.
Chapters: 0:00 Intro 1:08 Cameras and Rays 3:30 The Pixel Shader 5:02 Drawing a Sphere 6:59 Multiple Spheres, and Colour! 8:21 Two Types of Reflections 9:04 Experimenting with Randomness 11:14 Random Hemisphere Directions 14:11 The Trace Function 16:35 Testing Lights 17:55 Chair Thief 18:23 Progressive Rendering 19:54 A Simple Sky 20:49 Lambert’s Cosine Law 22:47 Cosine Weighted Rays 22:36 Triangles 24:52 Some Tests 27:14 Specular Reflections 29:59 Tomatoes and Glossiness 31:57 Blur and Anti-Aliasing 34:42 Depth of Field 37:14 The EndExperimenting with Buses and Three-State LogicSebastian Lague2023-01-29 | Let's figure out how to move data around inside our simulated computer. Featuring multiplexers, buses, and three-state logic.
Chapters 0:00 Intro 1:33 Multiplexers 3:47 Making a Mess 4:45 Public Transport to the Rescue 6:09 Push-Pull Outputs 9:17 Bus Contention 10:00 Three-State Outputs 12:23 Bus Buffer 14:56 Testing the Bus 18:08 OutroVisualizing Data with 7-Segment DisplaysSebastian Lague2022-12-09 | Displaying numbers is trickier than I expected! In this video we explore how to visualize the data inside of our simulated 4-bit registers, with the help of the double dabble algorithm and some seven segment displays.
Chapters 0:00 Intro 0:49 Two’s Complement Refresher 1:34 Seven-Segment Display + Truth Table 2:58 Boolean Algebra Basics 5:43 Simplifying the Equation 6:48 Converting Algebra to Logic Gates 8:33 Computer-Assisted Design 11:25 Testing the Digit Display Design 12:36 A Real-World Version (the 74LS248) 14:20 Visualizing the Data in a 4-bit Register 15:14 All Ten Digits 17:22 Binary Coded Decimal 19:49 The Double Dabble Algorithm 22:58 Dabbling with Logic Gates 24:05 Implementing Double Dabble 26:39 Displaying an 8-bit Number 27:18 Ripple Blanking 29:32 Displaying Negative Numbers 32:34 Testing the Final Design 33:50 OutroHow to Create a Neural Network (and Train it to Identify Doodles)Sebastian Lague2022-08-12 | Exploring how neural networks learn by programming one from scratch in C#, and then attempting to teach it to recognize various doodles and images.
Chapters 0:00 Introduction 2:39 The decision boundary 3:49 Weights 5:42 Biases 6:45 Hidden layers 7:45 Programming the network 9:57 Activation functions 12:42 Cost 15:07 Gradient descent example 18:22 The cost landscape 19:55 Programming gradient descent 21:10 It's learning! (slowly) 23:21 Calculus example 27:34 The chain rule 29:50 Some partial derivatives 33:14 Backpropagation 39:25 Digit recognition 43:56 Drawing our own digits 47:37 Fashion 48:25 Doodles 52:00 The final challenge
Music: Cosmic Waves - Michael FK Amber - The Stolen Orchestra Beyond the Horizon - Sounds Like Sander Air - Assaf Ayalon Purest Form - Sounds Like Sander Hear Wide Open - Sounds Like Sander Universal Wonder - Moments Roman P - Moments All In Good Time - Shimmer It Will Come Back - The Stolen Orchestra Frontier - Shimmer New Moon - Cloud Wave Sunflower - Cody Martin Inner Peace - Moments Enchanted - Cody Martin Just Around The Corner - ShimmerPolishing and Releasing My Tiny Geography GameSebastian Lague2022-05-02 | I've been making some small tweaks and additions to my little geography game based on the great feedback I've received from all of you (thank you!).
If you'd like to support my work (and get early access to new videos and projects), please consider becoming a patron of the channel over here: patreon.com/SebastianLague
Chapters 0:00 Intro 0:17 Creating a Compass 3:58 Making a Map 10:47 Tweaking the Terrain 13:13 Better city lights 15:40 Star Colour 16:27 Nighttime Visibility 17:26 Hot Air Balloons 19:52 Speed Control 21:34 Skywriting Experiment 24:18 The Final Result
Music: Spread your Wings - Evgeny Bardyuzha Immersion - Michael FK Back Home - Max H Icicles - Biba Dupont Less Traveled - Hans Johnson Let the Rains Come - We Dream of Eden How it Was - Laurel Violet Brightest - Ardie Son L'Absinthe Brûle - Biba Dupont It Will Come Back - The Stolen Orchestra Over the Canyon - Gray North Autumn in Paris - Jan Baars Passion - Veaceslav DraganovTrying to Improve My Geography Game with More Real-World DataSebastian Lague2022-02-09 | Continuing the geographical game journey with some performance improvements, bug fixes, graphical upgrades, and a variety of experiments.
If you'd like to support my work (and get early access to new videos and projects), please consider becoming a patron of the channel over here: patreon.com/SebastianLague
Music: Born to Fly - Veaceslav Draganov Falling Through the Hourglass - Sid Archarya Horizon - Veaceslav Dragnaov Living - Borrtex Another Time Another Place - Sounds Like Sander All in Good Time - Shimmer A Tender Heart - The David Roy Collective In the Kitchen of the Mountain King - Ikoliks Hourglass - Shimmer Amber - The Stolen Orchestra Spread Your Wings - Evgeny Bardyuzha After the Storm - We Dream of Eden Gibbous - Michael FK Orbit - Hans Johnson Orbital Anomaly - Cody Martin Falling Stars - Michael FK Momentum - Borrtex Gone with the Winds - Veaceslav Draganov
Chapters: 0:00 Hello Everyone 0:20 Please Don't Crash 1:50 Enhance! 8:45 City Lights 12:21 Terrain Mesh Optimization 17:17 Wind Experiment 21:12 Kepler and the Moon 27:32 The Motion of the Sun 28:43 Stars 29:56 Atmospheric Improvements 32:48 Seeing the SightsI Tried Creating a Game Using Real-World Geographic DataSebastian Lague2021-11-02 | A little experimental game I've been working on recently, where you fly around a tiny version of the world and deliver packages to various cities. Would love to hear any ideas you might have about how this could be taken further!
Music: Faith - Michael FK It Will Come Back - The Stolen Orchestra Icicle Caverns - Cast of Characters On Earth - We Dream of Eden Nightingale - Emorie Heart Caligraphy - Cody Martin Cosmic Waves - Michael FK Living - Borrtex Wonderland - Shimmer Falling Through the Hourglass - Sid Acharya The Art of Loneliness - ANBR Another Time Another Place - Sounds Like Sander Summit - Gray North Parachutes - Michael FK
Chapters: 0:00 Intro (feat. Ori) 0:36 In Which a Cube Becomes a Sphere 2:06 Topography and Bathymetry 2:38 Latitude and Longitude Conversions 3:24 A Vertically Exaggerated World 6:10 Flying About the Planet 7:35 Frustum Culling Optimization 8:20 Generating a Normal Map 10:09 A Splash of Colour 10:39 Countries and Cities 12:06 Drawing Borders 13:07 Country Highlights 15:37 Drawing the Oceans 18:01 Some Gigantic Boats 20:05 Cloud Experiments 24:08 Custom Shadow Casting 25:39 Atmosphere Test 26:44 Parachuting Packages 28:00 Let's Play! 31:27 Outro (feat. Ori and Beemo)I Spent a Week Making an AIs Video Game IdeaSebastian Lague2021-08-30 | I've recently been on a streak of unfinished projects, so I decided to focus one week on actually completing something -- anything! I thought it would be fun to make a small game, and so I asked an AI for some ideas...
If you'd like to support me in making more of these programming / game dev videos, I have a Patreon page over here: patreon.com/SebastianLague
The Art of Loneliness by Anbr Into the Deep by Daniele Musto Toony by Liberty Bursting Splendor by Cody Martin Newborn by Roie Shpigler Falling Through the Hourglass by Sid Acharya Flight of the Inner Bird by Sivan Talmor
Chapters: 0:00 Long-winded Introduction 1:33 Generating an Idea 2:45 Inverse Kinematics for Vacuuming 4:38 Rope Simulation 7:33 Cloth Simulation 8:59 Dust! (with GPU Instancing) 11:22 Procedurally Generated Floorboards 11:56 Props and Ghosts 13:13 Suction Lines and More 14:28 Playing the Game 15:50 Super Chore Man Goes Shopping 16:58 OutroCoding Adventure: TerraformingSebastian Lague2021-05-29 | I got a bit tired of my simple heightmap-based planets and decided to experiment with generating them using the Marching Cubes algorithm instead, so that I could add a 'terraforming' ability for shaping the world with caves and tunnels and so on. I hope you enjoy!
If you’d like to support me in creating more videos, I have a Patreon page over here: patreon.com/SebastianLague
Have a look at these videos if you're interested in learning about how the atmosphere and clouds were created: Atmosphere: youtu.be/DxfEbulyFcY Clouds: youtu.be/4QOcCGI6xOU
Chapters: 0:00 Intro 1:05 Marching Cubes Algorithm Refresher 2:32 Looking at the Code 3:42 Making a Sphere! 4:53 Floating Rocks 7:20 Chunk Woes 9:48 The Mistake 11:31 Terraforming is Easy! 12:26 A Simple Water Shader 16:28 Adding Atmosphere 17:30 Some Fluffy Clouds 18:54 Terrain Colouring, and Sticky Lights! 20:23 The Expedition 21:23 Outro
Music: Heart Calligraphy by Cody Martin Wonderland by Shimmer Autumn Wind by Yehezkel Raz Hall of the Mountain King by Kevin MacLeod (composed by Edvard Grieg) It Will Come Back by The Stolen Orchestra Amber by the Stolen Orchestra Nightingale by Emorie Into the Light by Emorie Animated Adventure by Andy EliisonComplex Behaviour from Simple Rules: 3 SimulationsSebastian Lague2021-04-27 | A small display of some of the surprisingly intricate patterns and behaviours that can arise from relatively simple rules. More information about each of the simulations below.
---- 1. Reaction-Diffusion ---- This is a simulation of two chemicals (A and B). Both diffuse over time (A faster than B). The simulation space is initially filled with A, and just a small region has some of chemical B. Over time, more A is gradually added (controlled by a parameter called feedRate), while B is gradually removed (controlled by the parameter removeRate). Finally, there's a reaction that takes place: when one particle of chemical A is in the presence of two particles of chemical B, it will be converted into B.
One could simulate the individual particles of both chemicals, but more common (and the approach I went with as well) is to just store a value for the concentrations of both chemicals at each pixel. The probability of an A particle coming into contact with two B particles can be determined by the equation: probablityOfReaction = concentrationA * concentrationB * concentrationB. Here is the tutorial I followed when creating my implementation: karlsims.com/rd.html
The colours in the simulation are mainly based on the concentrations of the two chemicals, but to spice things up I also added some colouring based on how fast the concentrations are changing at each point.
---- 2. Multiple Neighbourhood Cellular Automata ---- This is a technique developed by someone who goes by Slackermanz online (you can find many awesome examples under that name on Twitter).
In this simulation, the state of each pixel (called a cell) is initially randomized between 0 and 1. On every frame, the state of each cell is updated based on the states of all the cells inside various "neighbourhoods" around it. These neighboughhoods are ring-shaped, with each ring defined by a min and max radius, along with two min/max values called 'alive' and 'dead'. Once all the states inside a ring have been added up, the sum is compared to the ring's alive and dead ranges, and depending on which range the sum falls into, the cell's state increases or decreases by some small amount (if the sum is inside neither range, the state remains the same).
This already gives interesting results, but there are some more nuances that can be added. For example, instead of the rings directly affecting the cell's state, they can contribute to several 'potential' states, and whichever of these is most different from the cell's current state becomes the new state.
---- 3. Slime Mould Simulation ---- In this simulation we have a lot lot of particles, each of which leaves a trail behind itself as it moves. These trails diffuse and evaporate over time. Each particle also has three circular sensors arranged in an arc in front it. These are used to detect the intensity of the trail, and the particle turns towards whichever detects the highest intensity. Some randomness is added to the turning as well.
Music: Beneath the Stars by Joshua Spacht Nowhere I Can Go by The Stolen Orchestra The Art of Loneliness by Anbr Selfless by Eleven Tales Life by Anbr
Chapters: 00:00 Reaction-Diffusion Simulation 02:50 Multi-Neighbourhood Cellular Automata 07:23 Slime Mould SimulationCoding Adventure: Ant and Slime SimulationsSebastian Lague2021-03-25 | A small exploration of an algorithm inspired by ants, and some little experiments into simulating some of the behaviour of ants and slime moulds. I hope you enjoy!
Chapters: 0:00 Intro 0:17 Traveling Salesperson Problem 1:36 Ant Colony Optimization 4:37 Creating a Visual Ant Simulation 9:15 Unleashing the Ants! 10:16 Side-tracked by Slime 14:07 Single Slime Experiment 16:02 Multiple Slime Species
Music: Forest Overture by Yehezkel Raz Honey Bee Waltz by Kadir Demir Newborn by Roie Shpigler Joking by Kadir Demir Joyfulness by Kadir Demir Wakeup Call by Ran Raiten Anthill by Kadir Demir Synesthesia by Michael FK A New Horizon by Cloud Wave Selfless by Eleven Tales Reel by AnbrCoding Adventure: ChessSebastian Lague2021-02-12 | My attempt at creating a little chess playing program! Think you can beat it? Give it a go over here: sebastian.itch.io/chess-ai
If you'd like to support the creation of more videos (and get early access to new content), I'd greatly appreciate the support here: patreon.com/SebastianLague
Chapters: 00:00 The Board and Pieces 03:20 Generating Moves 06:54 A Random Adversary 07:52 Optimization and Testing 12:11 Search and Evaluation 17:43 Easy Endgames 20:00 The Transposition Table 23:03 Openings 25:09 Game One 26:06 Game Two 27:01 Game Three 28:05 Game Four
Music: Devoted Mind by Wild Colors Intuition by Lincoln Davis Wonderland by Shimmer Selfless by Eleven Tales Floating Point by Roie Shpigler Nobility by Wicked Cinema A Quiet Place by Jordan White Air by Assaf Ayalon Heart Wide Open by Sounds Like Sander Thoughts by Anbr Deep Blue Sea by Sivan Talmor Flight of the Inner Bird by Sivan Talmor Kings and Queens by Wicked CinemaHow Do Computers Remember?Sebastian Lague2020-12-04 | Exploring some of the basics of computer memory: latches, flip flops, and registers!
Chapters: 00:00 Intro 00:33 Set-Reset Latch 04:33 Data Latch 05:56 Race Condition! 07:32 Breadboard Data Latch 09:36 Asynchronous Register 11:41 The Clock 13:03 Edge Triggered Flip Flop 14:18 Synchronous Register 16:48 Testing 4-bit Registers 18:25 Outro
Music: "Frontier" by Shimmer "A Quiet Place" by Jordan White "Constellations" by Acreage "Beyond the Horizon" by Sounds Like Sander "Crystal Bursts" by Cody Martin "When Rain Comes" by Tide Electric "Air" by Assaf Ayalon "Mallets of Mischief" by Rhythm Scott
Chapters: 00:00 Intro 00:50 Logic Gates 03:09 The Simulation 05:06 Binary Numeral System 06:16 Binary Addition Theory 07:24 Building an Adder 12:11 Negative Numbers Theory 15:08 Building the ALU 17:43 Outro
Music: "A Quiet Place" by Jordan White "A New Perspective" by Ryan Smart "Beyond the Horizon" by Sounds Like Sander "Crystal Bursts" by Cody Martin "Air" by Assaf Ayalon "Elastic Vibe" by Ziv Moran "Gotcha!" by Avocado Junkie
Some notes: • I made a little build where you can play with the atmosphere settings yourself, which you can find over here if you're interested: sebastian.itch.io/atmosphere-experiment
• A number of knowledgeable people have pointed out in the comments that reality is not nearly as simple as my little diagram around the 4 and a half minute mark, and that light does not literally wiggle up and down like a wave, so please note that the diagram is incorrect!
• This project was inspired by the game Outer Wilds, which I highly recommend playing!
Music: "Brief Respite" by Antti Luode "When Rain Comes" by Tide Electric "Door to Door Disco" by Bright Seed "Reflections of Space and Time" by AEROPLANES "In the Atmosphere" by Bad Snacks "Reflections" by MK2 "Nidra in the Sky with Ayla" by Jesse Gallagher "Far Away" by Antti Luode "Frontier" by Shimmer
Sections: 00:00 Intro 00:32 Setup 02:46 Resources 03:25 Light Scattering 06:15 Coding the Shader 11:55 Initial Results 13:10 Adding Colour 15:20 Colourful Results 16:40 Optimisation 17:39 Stars 18:50 ExplorationCoding Adventure: Procedural Moons and PlanetsSebastian Lague2020-07-11 | Trying to generate some simple little moons and planets to fly about and explore. Inspired by the (incredible!) game Outer Wilds.
Music: "Brief Respite" by Antti Luode "In the Clouds" by Falls "When Rain Comes" by Tide Electric "Reflections of Space and Time" by AEROPLANES "Liminal" by Chelsea McGough "Frontier" by Shimmer "Sun and the Moon" by Moments
Sections: 0:00 Intro 0:25 Spheres 3:09 Craters 8:10 Noise 10:40 Triplanar Mapping 14:21 Planet Shape 15:28 Ocean 17:30 Planet Shading 20:06 Solar SystemCoding Adventure: Solar SystemSebastian Lague2020-04-17 | Experimenting with gravity and attempting to make a miniature, explorable solar system.
Music: "Somewhere in Outer Space", "Space Adventure 1982", "Under a Distant Star" and "Brief Respite" by Antti Luode. "Atlantean Twighlight" and "Tango de Manzana" by Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 License http://creativecommons.org/licenses/by/3.0
Sections: 0:00 Intro 0:27 Gravity 4:28 Solar System 7:56 SpaceshipCoding Adventure: PortalsSebastian Lague2020-02-08 | Experimenting with portals, for science.
Chapters: 0:00 Introduction 0:25 Figuring out the cameras 1:41 Test world 3:09 Texture mapping 4:27 Trying to understand perspective divide 5:50 Optimization 6:50 Making a prettier test world 7:18 Teleportation, at last! 9:17 Fixing the flickering 10:00 Slicing 12:15 Oblique projection 13:31 Recursive portals 15:33 Outroduction
Music: "Twisting", "Lightless Dawn", "Frost Waltz", "Heart of Nowhere", "At Rest", "Spellbound", "In Your Arms", "Rynos Theme", and "The Builder" by Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 License http://creativecommons.org/licenses/by/3.0My First 10 Years of Game DevelopmentSebastian Lague2020-01-01 | A little look back at my first ten years of learning to make games and 3d graphics, and of creating videos on youtube.
Music: "The Other Side", "Hiding Your Reality", "The Deadly Roulette", "Twisting", "Phantom from Space", and "Half Mystery" by Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 License http://creativecommons.org/licenses/by/3.0
Chapters: 0:00 Early animations 0:55 First steps with coding 2:46 The Java days 3:55 Entering the third dimension! 5:02 Discovering Unity 5:43 My first tutorial 6:21 I made some games 8:37 Back to tutorials 9:58 Coding Adventures 10:44 OutroCoding Adventure: Game Idea GeneratorSebastian Lague2019-12-14 | I created a little generator for coming up with (mostly terrible, but occasionally interesting) game ideas. I then tried making a little game based on a generated prompt about ghosts and beekeeping.
Project source: The Unity project is available to patrons of the channel, so if you'd like to get access (or simply support me in creating more videos), you can become a patron here: patreon.com/SebastianLague
Music from filmmusic.io "Darkling", "Twisting", "Inspired", and "Beauty Flow" by Kevin MacLeod (incompetech.com) License: CC BY (http://creativecommons.org/licenses/by/4.0)I Created a (terrible) Video Game ConsoleSebastian Lague2019-11-27 | I know nothing about electronics, but thought it'd be fun to try create a (super simple and extremely terrible) video game console.
I was inspired to start experimenting with this after stumbling across the fascinating videos of @BenEater. If you found this video at all interesting, I'd highly recommend taking a look at his channel for some much more advanced stuff!
If you'd like to help me create more videos, you can support the channel on Patreon over here: patreon.com/SebastianLague
The source code for this project (console/game scripts + Unity music editor) is probably not of much interest to anyone, but you can take a look here if you want: github.com/SebLague/Monster-Console
Chapters: 0:00 Intro 0:17 Arduino Uno 0:37 Joystick Input 2:53 High Definition Display 3:29 Audio 4:36 Coding Some Games 6:05 Constructing the Console 7:53 It's Alive!Coding Adventure: CloudsSebastian Lague2019-10-07 | Clouds are lovely and fluffy and rather difficult to make. In this video I attempt to create clouds from code in the Unity game engine.
Project source (Unity, HLSL, C#) is now out of early access: github.com/SebLague/Clouds If you'd like to support the creation of more videos like this, please consider becoming a patron: patreon.com/SebastianLague
Notes: I made a mistake at 2:12 in saying that the closest point is guaranteed to be inside the adjacent cells, it’s possible to get arrangements where the nearest point is two cells away orthogonally. This doesn’t seem to occur much as I never noticed any discontinuities in the result, but worth knowing.
Chapters: 0:00 Intro 0:56 Worley Noise 3:12 Image Effects 3:50 Raytracing... a Box! 5:14 Raymarching Cloud-ish Shapes 7:10 Light Scattering Theory 8:26 Mishap Montage 9:22 Final Code 9:44 Cloud Editor 11:31 Final Demo: Flying Through the CloudsCoding Adventure: BoidsSebastian Lague2019-08-26 | Trying to create some flocking behaviour, and getting a little distracted by spirals along the way...
If you'd like to support the creation of more programming videos, I'd greatly appreciate your support on patreon: patreon.com/SebastianLague
Chapters: 0:00 Intro 0:26 The three rules of being a boid 1:44 Obstacle avoidance 3:03 Getting sidetracked by spirals 6:12 Back to obstacle avoidance 6:55 Obstacle course and optimization 7:47 Swimming with the fishies
Music: "Beauty Flow" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0Coding Adventure: Coding a Coding GameSebastian Lague2019-07-08 | Attempting to create a little game where programming is the core mechanic.
If you'd like to support the creation of more programming videos, please consider becoming a patron here: patreon.com/SebastianLague
Music from https://filmmusic.io: "Half Mystery" by Kevin MacLeod (incompetech.com) Licence: CC BY (http://creativecommons.org/licenses/by/4.0)Coding Adventure: Simulating an EcosystemSebastian Lague2019-06-10 | In this coding adventure I attempt to simulate a simple ecosystem. Will the foxes and rabbits get along? Probably not...
If you'd like to support the creation of more programming videos like this, please consider becoming a patron here: patreon.com/SebastianLague
This video was inspired by Primer's series on evolution. I highly recommend taking a look! youtu.be/0ZGbIKd0XrM As many in the comments have said, if you enjoy this, you may want to check out equilinox, which is an entire game based around creating an ecosystem. It’s awesome. youtu.be/lHHpMn2UK6s
Source code: The source for this video is a total mess, which I don't really want to share! I'm working on a second part though, and you can find the work-in-progress code for that here: github.com/SebLague/Ecosystem-2/tree/master
Music from https://filmmusic.io: "Inspired", "Deadly Roulette", and "Le Grande Chase" by Kevin MacLeod (incompetech.com) Licence: CC BY (http://creativecommons.org/licenses/by/4.0)Coding Adventure: Marching CubesSebastian Lague2019-05-06 | In this coding adventure I try to understand marching cubes, and then use it to construct an endless underwater world.
If you'd like to support this channel, please consider becoming a patron here: patreon.com/SebastianLague
Music from https://filmmusic.io: "Hiding Your Reality" and "Floating Cities" by Kevin MacLeod (incompetech.com) Licence: CC BY (http://creativecommons.org/licenses/by/4.0)Coding Adventure: Compute ShadersSebastian Lague2019-03-14 | In this coding adventure I learn about compute shaders by creating a very simple raytracer. I then try use what I've learned to speed up my erosion simulation from the previous episode.
If you're enjoying these videos and would like to support me in creating more, you can become a patron here: patreon.com/SebastianLague
Music: "Le Grand Chase" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 http://creativecommons.org/licenses/by/3.0Coding Adventure: Hydraulic ErosionSebastian Lague2019-02-28 | In this coding adventure I attempt to implement a simulation of hydraulic erosion to make a procedural terrain look more natural.
If you're enjoying these videos and would like to support me in creating more of them, I have a patreon page here: patreon.com/SebastianLague
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Object Placement (E01: poisson disc sampling)Sebastian Lague2018-11-23 | In this video we look at implementing poisson disc sampling, an algorithm for generating tightly-packed points which are all some minimum distance from one another. This implementation is based on the paper here: cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E07: ocean depth)Sebastian Lague2018-10-31 | In this episode we make the oceans more interesting by shading them according to their depth. Get the project files for this episode: http://github.com/SebLague/Procedural-Planets
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E06: simple biomes)Sebastian Lague2018-10-23 | In this episode we add simple colour biomes to the planet.
Note: Two issues have been pointed out which I'd like to address: (will add these fixes at end of next video) 1) changing resolution causes uv out of bounds error. This can be fixed by checking mesh.uv.Length == uv.Length before assigning the uvs in ConstructMesh method. 2) biome colours appearing in wrong places when zoomed out (on certain devices). To fix this, mipmaps need to be disabled on the planet texture. In the ColourGenerator, replace with: texture = new Texture2D(textureResolution, settings.biomeColourSettings.biomes.Length, TextureFormat.RGBA32, false);
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E05: shader)Sebastian Lague2018-09-14 | In this episode we use shadergraph to create a simple shader for our planet.
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E04: multiple noise filters)Sebastian Lague2018-09-07 | In this episode we'll add support for having multiple noise filters, and create a new noise filter for producing ridge-like terrain.
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E03: layered noise)Sebastian Lague2018-08-30 | In this episode we'll create a noise filter to process noise, and layer it for more interesting terrain. Episode 04 is out for early access viewers here: patreon.com/posts/21079771
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E02 settings editor)Sebastian Lague2018-08-23 | In this episode we'll be creating a custom settings inspector for the planet.
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLague[Unity] Procedural Planets (E01 the sphere)Sebastian Lague2018-08-16 | In this series we'll be creating a system for procedurally generating simple, but diverse planets.
Please note that this series will not be covering level of detail or collisions, the goal is simply to generate some interesting-looking planets.
Support the creation of more tutorials and get early access to new videos: patreon.com/SebastianLagueNeural Networks | E03: data and evaluation (unfinished series)Sebastian Lague2018-06-14 | In this episode we load our training data and evaluate how accurate the network is with random weights.
Support the creation of more tutorials: patreon.com/SebastianLagueNeural Networks | E02: predictions (unfinished series)Sebastian Lague2018-06-04 | In this episode we look at how neural networks can be represented with matrices, and create a simple feedforward network in python.
Note: at 2:31 the second bias vector should only have two rows, not three.
Learn more about weight initialization: http://cs231n.github.io/neural-networks-2/#init (note: numpy.random.randn and numpy.random.standard_normal are functionally equivalent, the latter just takes a tuple for the shape parameter).