Uploaded September 2023 | Updated September 2026, 2 weeks ago
In this video, we're drawing generative art in the form of flow fields! Flow fields are mathematical structures where every point of a space is associated with an angle, and by carefully choosing those angles, we can trace out the path of particles moving across the field, creating some beautiful images.
=[ 🔗 Links 🔗 ]=
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo: github.com/lowbyteproductions/flow-fields
In this video, we're drawing generative art in the form of flow fields! Flow fields are mathematical structures where every point of a space is associated with an angle, and by carefully choosing those angles, we can trace out the path of particles moving across the field, creating some beautiful images.
=[ 🔗 Links 🔗 ]=
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo: github.com/lowbyteproductions/flow-fields
![How does KERNEL memory allocation work? //Source Dive// 004
In this installment of //Source Dive//, were deep in the xv6 operating system, trying to understand how physical memory of the system is tracked, distributed, and returned to the kernel. Its a fascinatingly simple algorithm, which can be paradoxically kind of hard to understand!
=[ 🔗 Links 🔗 ]=
🐋 RISC-V Docker Image: https://github.com/francisrstokes/rv-toolchain-docker/pkgs/container/rv-toolchain-docker
🎥 Series Playlist:
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/mit-pdos/xv6-riscv How does KERNEL memory allocation work? //Source Dive// 004](https://i.ytimg.com/vi/NC_qkXznvkg/mqdefault.jpg)
![Implementing LOAD instructions: RISC-V ep.5
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator Implementing LOAD instructions: RISC-V ep.5](https://i.ytimg.com/vi/NrOdQu8Spxo/mqdefault.jpg)
![Understanding AES Encryption Mechanics: BMPS
In this video were taking some time to grok the mechanics of AES. We cover the core operations of the algorithm, the mathematics of finite fields, and the all-important modes of operation.
=[ 🔗 Links 🔗 ]=
AES Blog Post: https://github.com/francisrstokes/githublog/blob/main/2022/6/15/rolling-your-own-crypto-aes.md
Spec: https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.197.pdf
Deeper justifications and analysis: https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf
Attacking AES with power analysis: https://www.youtube.com/watch?v=5Hn2D5lrzVo
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Understanding AES Encryption Mechanics: BMPS](https://i.ytimg.com/vi/OnhtzFJW_4I/mqdefault.jpg)
![Building FPGA Hardware Using TypeScript: Driving An RGB LED Panel
In this video were taking a look at gateware-ts, a TypeScript library for describing and building digital hardware for FPGAs in TypeScript. Specifically, were building a driver for a 64x64 RGB LED Panel - the same as those used in large video wall displays.
If you want to try this project out for yourself, you can find the LED panels in many different places - including the 1bitsquared store mentioned in the video, but also sites like adafruit and other general electronics stockists have these kinds of panels available. If you dont mind the wait time, you can order them from China on sites like aliexpress - where theyre usually a little cheaper.
00:00 - Introduction
05:38 - The LED Panel
11:43 - The icebreaker FPGA Board
14:51 - Writing the driver
52:18 - Testing the panel
54:16 - Creating a pattern on screen
58:58 - Testing the pattern
=[ 🔗 Links 🔗 ]=
- FPGA: https://en.wikipedia.org/wiki/Field-programmable_gate_array
- gateware-ts: https://github.com/gateware-ts/gateware-ts
- gateware-ts documentation: https://gateware-ts.github.io/gateware-ts/
- icebreaker FPGA: https://1bitsquared.com/collections/fpga/products/icebreaker
- LED Panel: https://1bitsquared.com/collections/fpga/products/led-panel
- Great Sparkfun article about driving LED panels: https://www.sparkfun.com/news/2650
- Verilog: https://en.wikipedia.org/wiki/Verilog
- Summon FPGA Tools (script to download and build the OSS FPGA toolchain): https://github.com/open-tool-forge/summon-fpga-tools
- Prebuilt FPGA toolchain releases: https://github.com/YosysHQ/fpga-toolchain
- Yosys: http://www.clifford.at/yosys/
- NextPNR: https://github.com/YosysHQ/nextpnr
- Symbiflow: https://symbiflow.github.io/
- nMigen (like gateware-ts, but for python): https://github.com/m-labs/nmigen
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/LowLevelJavaScript/led-panel-driver-in-gateware-ts Building FPGA Hardware Using TypeScript: Driving An RGB LED Panel](https://i.ytimg.com/vi/Otx96lJnLeo/mqdefault.jpg)
![Building A Language Parser and Interpreter [Parser Combinators from Scratch] Episode 5
In this episode we dive into parsing recursive structures, and build a very simple functional language parser and interpreter.
=[ ℹ About ℹ ]=
During this series we will develop an understanding of the concept of parsing, and build our own parser combinator system from scratch. The system we build will be capable of parsing both binary and text data. Well make use of both object-oriented and function programming principles to develop an effective and intuitive library.
=[ 🔗 Links 🔗 ]=
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Playlist: https://www.youtube.com/watch?v=6oQLRhw5Ah0&list=PLP29wDx6QmW5yfO1LAgO8kU3aQEj8SIrU
- Code: https://github.com/LowLevelJavaScript/Parser-Combinators-From-Scratch
- LLJS Subreddit: https://reddit.com/r/lowleveljavascript Building A Language Parser and Interpreter [Parser Combinators from Scratch] Episode 5](https://i.ytimg.com/vi/PzodUuERBZc/mqdefault.jpg)
![Programmatic Flash Control :: Bare Metal Programming Series 8
In this installment of the bare metal programming series, were diving into how the flash peripheral of the STM32F401 chip works, and building out a little layer to be able to write a new main application from the bootloader. This serves as an excellent opportunity to cross reference the details of the reference manual with the APIs provided by libopencm3 - going from a register level understanding, to a higher level implementation!
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Programmatic Flash Control :: Bare Metal Programming Series 8](https://i.ytimg.com/vi/QcE3Y_8hroU/mqdefault.jpg)
![The Emulator Is Done?!: RISC-V ep.12
In this final installment of the RISC-V (emulator) series, we implement a multi-cycle memory interface. With this in place, the design is complete enough to move forward and begin design honest-to-goodness FPGA hardware!
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator The Emulator Is Done?!: RISC-V ep.12](https://i.ytimg.com/vi/QmHAN1vOtjs/mqdefault.jpg)
![Binary Patching: How The IPS Format Works
In this video, were taking a deep dive into the IPS format, and building a compliant parser and patcher in the C programming language!
IPS is a relatively old and simple format, and not in widespread use these days, but taking a look at the details provides a lot of insight into the subject, as well as a clear direction for the formats that succeeded it.
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://pawww.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/IPS-Binary-Patcher Binary Patching: How The IPS Format Works](https://i.ytimg.com/vi/R-TGJ-9QSP4/mqdefault.jpg)
![Turing Complete with Conditional Branches: RISC-V ep.7
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator Turing Complete with Conditional Branches: RISC-V ep.7](https://i.ytimg.com/vi/RPUSuZwoiGA/mqdefault.jpg)
![Implementing Store Instructions: RISC-V part 4
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator Implementing Store Instructions: RISC-V part 4](https://i.ytimg.com/vi/RZ9OrIprbUY/mqdefault.jpg)
![Bootloader Packet Protocol Implementation :: Bare Metal Programming Series 7.2
In this episode of the bare metal programming series, were implementing the packet protocol we looked at in the previous video inside the bootloader.
This protocol is able to automatically process incoming packets, acknowledging or requesting retransmission (or retransmitting when requested), and stuffing the data into a buffer for the application logic to use.
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Bootloader Packet Protocol Implementation :: Bare Metal Programming Series 7.2](https://i.ytimg.com/vi/RrUyS-gixWk/mqdefault.jpg)