pkncoder

pkncoder

0-day streak
—————– Devlog XXI —————– – My brain hurts 🧠 - Sharp like glass :obsidian-md: – > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation).What _did_ I do? ☀️ Sadly, I haven’t done much coding :sad-cat-thumbs-up: Instead, I’ve been trying to figure out how I want *my* Render Graph to work. To start, *what is a render graph?* What I am interpreting the render graph as, issss: An API meant to simplify and provide structure to a final renderer. In the final application, the render graph will be an option for a more advanced final render editor. What I am working on now, is how it will be put together so I don’t have a mess in the future. Recently, I’ve been using Obsidian to mark everything down. This also starts a little docs. Using a mix of Obsidian and the excalidraw plugin, I’m able to write everything down and create visuals. Currently, I have a mix of nodes that are the main important ones. These nodes are just the *interfaces*, so they aren’t specified. They act as a blueprint for any of the full nodes. • IRenderOutput - Add textures to a list of blitables • IShaderInput - Base input interface • IShaderOutput - Base output interface • IShaderNode - Node representation of shaders • IShaderPassNode - Base shader interface :miku: Thank You for Reading :3-blahaj-spinning: I haven’t been home enough to create the “big brain wall” which is sad, but at least my stuff is digital. Stardance Devlog: stardance.hackclub.com/projects/15129/devlogs/49364 Github repo: github.com/pkncoder/Engine Project landing page: pkncoder.github.io/EngineWhat’s next? :octagonal_sign: • Setup current program for Render Graph implementation • Implement IShader, IGPUTexture, etc. • Create IRenderGraph for the renderers
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/fb5ca61c-7173-477a-8c21-cfe56ade353f-3725c293-dfd9-46c8-b925-775b4792919d.png
🐱sadge emoji📈summer-of-making emoji🧠github emoji
----------------- Devlog XX ----------------- -- 🌟I have the best *one liners* 🗿-- 🥀 Now I have to be smart??? 🧠 -- > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). ✨ What _did_ I do? ☀️ For the quick overview: - Fixed the shadow map issue (so angry about this, see below) - Fixed an issue with textures not caching - Got the very base implementation of Uniform Buffers To start off, in the previous devlog I mentioned I was re-writing the shadow mapping. > Shadow Mapping - Rendering a 3d model with the light being the eye. Everything that it can see is *not* in shadow, everything else is. quick explanation I was having issues with getting the shadows to work correctly. I had ideas for issues, including: (the *model matrix*, the *renderPackets* being in a bad order, the *far plane*). IT TURNS OUT It was none of these. Whenever I made the code to compile a geometry shader along the vertex & fragment shader, I just copied my old one and spliced in the code. *Turns out* I forgot to swap some variables, and I was putting code in places it should *NOT* be at. No idea why it didn't crash, but it fixed my shadow issues very quick :celeste-ghost-sigh00: . As for UBOs, I'll talk about them in a future devlog, when I have everything planned out. :miku: Thank You for Reading :3-blahaj-spinning: As I said with "Planning out" everything, I'm going to set up a whiteboard - I'll have to move my :rainbow-flag: pride flags :transgender_flag: :( - Stardance Devlog: stardance.hackclub.com/projects/15129/devlogs/44870 Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/EngineWhat's next? :octagonal_sign: 1. Refactor 2. Build the big brain wall 3. Do some thinking :cinemaa:
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/46d9add0-b8ae-47f3-aefe-ad2aded3d1f2-ac95b828-af52-44e1-8013-35df90fdf179.png
🧠goose-honk-technologist emojiyay emojisummer-of-making emojigithub emojithinking emoji✈️
Just finished fixing the issue with the shadows: I was compiling the wrong shader code and linking it 😭. Currently, uploading, compiling, checking ids, and outputing debug shaders are dealt with with a quick and easy copy-paste method, and I just overload the constructors for the shader class. However when I did this for the new geometry shader it was late, so the copyed code was posting very wrong stuff. 🥀 Here's the git commit, look in the Shader.cpp file: github.com/pkncoder/Engine/commit/a74511d6f27f…
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/c3b10e14-f244-4a35-b7d9-192505596a29-screenshot_2026-08-23_at_2.13.03___am.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/9206efff-e014-4841-9f7f-5c4e5fb66ce8-screenshot_2026-08-23_at_2.04.47___am.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/e631c005-bcfe-4533-9be1-e93462624625-ebf9d692-0709-450b-a727-ea2af57e1324.png
goose-honk-technologist emojidino-debugging emojisummer-of-making emojigithub emoji
----------------- Devlog XIX ----------------- \- 🌲 Textuers :female_fairy: - :female-technologist: *Shadoowwsss* 💀- > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). ✨ What did I do? ☀️ To recap on what I did: - Got the program to launch to black screen - I needed to inject the Asset Manager to a class - Got objects loading correctly without shadows - Got textures to load - Started work on fixing the shadow map Nothing too crazy has been changed, the texture issues were about some compatibility problems and not uploading to the same index. The shadow values are uploaded to a 3d texture, where to calculate if an object is in sight or not, we commit triangles based on their position. The problem now is about the far plane, and hitting triangles that weren't in shadow. I'm not sure what the problem is, but I'm going to do a bit more looking into it. --- :miku: Thank You for Reading :3-blahaj-spinning: I still have to fix the shadows issue (obviuosly) but then I can move onto formatting the data (putting it into buffers, creating wrappers, etc).!! Stardance Devlog: stardance.hackclub.com/projects/15129/devlogs/43917 Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/Engine --- ❓ What's next? :octagonal_sign: 1. Write the shadow cubemap geometry shader & ad it to the OpaquePass (temp main pass) 2. Make and debug UBOs replacing base uniforms 3. Refactor / clean 4. Create the real Render Graph? --- 🥀 Git Commits (shortened)🗿 Commits: github.com/pkncoder/Engine/commits/Phase-IV
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/ffda177f-8b00-4fa6-adf3-223bc93927c2-d661950a-cc89-410e-8b1c-09be27867435.png
summer-of-making emojigithub emojidino-debugging emoji📈✈️
----------------- Devlog XVIII ----------------- - 🌲 Trees :female_fairy: - :female-technologist: *SO MUCH REWRITING* 💀- > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). ✨ What did I do? ☀️ These last few days, I've been working on getting my Rasterizer (drawing triangles of a model on screen and coloring them) working. The big changes that I did include: - Fixing an issue with textures not loading - Updated the Interface for every Renderer. - Implemented the *extract* / *prepare* / *dispatch* pipeline into the Rasterizer for real now. - Started working on the base ideas of a "Shader Graph" The issue with textures was just moving a line like 3 lines lower. I was freeing the image data before saving it ~(oops)~. The updated interface is the *IRenderer* class. Each Renderer bases off of the class, supplying it with a framework so each Renderer can be talked to the same way. Here are some of those functions: 1. beginFrame - Clear previous frame data and prepare for a new frame 2. extract - Take raw scene data (camera, renderables) and convert it into packets for the next step. 3. prepare - Take each packet from extract and turn them into draw commands for dispatch. 4. dispatch - Take each draw command and send a draw call, along the way binding any textures & uniforms. 5. postProcess - Take the frame and post-process it. This may be removed. 6. present - Take the rendered frame and show it to the screen (blit it). To do a quick review on what the *Shader Graph* is - it is a collection of "nodes," each with their own inputs and outputs that connect together to render out a frame. I'm still a bit confused, but I've been watching presentations on the topic from companies like Unity & Activision. :miku: Thank You for Reading :3-blahaj-spinning: Yea, I know it's been a while since my last devlog. I've been making some posts in slack about my Path Tracer, since I spent a little time on that. I'm looking at the timing for everything, the hope is to ship this at the end of Phase-IV and hope that I can get a UI working before too late. I'm hoping I can get enough stardust to pay for a new laptop, but idk that's a long shot. I still have about 25 more hours if I get a 16x mult (which I can only hope for) before I would hit the mark for the FW 12, which isn't crazy (the mult is tho). Staredance Devlog: stardance.hackclub.com/projects/15129/devlogs/42349 Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/641290c0-52cf-4a8e-8792-fbcb450a43ce-3ab9905f-324b-4447-a8fd-6625288c3c11.png
summer-of-making emojigithub emoji✏️slack emoji📈🚢
THEY LOOK SO COOL!!! I'm moving on from the path tracer for now, as the only thing left to add is transparency, and I don't need to worry about that for now.
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/65016292-1326-46a6-a313-e7f5b2c9b012-2026-08-16_20-13-21.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/c3c73233-9cc3-481e-9dce-5a4f5b39e757-2026-08-16_20-11-23.png
summer-of-making emojicooll-dino emoji
New render I could set the scene more, but I'm going to save that for the ray marcher Shadertoy / online demo: shadertoy.com/view/7fBSzR (won't look like that on launch)
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/06e6a486-e22c-4534-b1a4-b77548f7b7f0-image.png
summer-of-making emojiwoa emoji
Here's my first ever attempt at animated lights as well, I think it turned out well! _image is way more crispy than it was supposed to be, as the compressor compressed more than I wanted it to_ Go check the non compressed version here: shadertoy.com/view/7fBSzR
summer-of-making emojithinking emoji
----------------- Devlog XVII ----------------- - :spin-loading: *Strange* :spin-loading: Hours - > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). ✨ What did I do? ☀️ To start off, I did not work directly on my application, but the online demo. It's like working on the website, but through another editor sometimes. > The goal of the Path Tracer is to eventaully get it clean & quick enough to be real-time. This is the first of the 5 renderers that I will be making. I was working on my online shadertoy DEMO (shadertoy.com/view/7fBSzR) for the Path Tracer, specifically the denoiser. The name of the denoiser I am using is the "*Edge-Avoiding Á Trous Wavelet Transform*". As a quick overview: - It applies a blur "with holes" to allow for less to no image distortion - Fast enough for realtime - Includes "weights" based on (in my code): Normal, Depth, and Color. The larger the difference between the center pixel and the scanned pixel (kernel), the more weight is applied, lessening the amount of blur. This is amazing, however when the camera moves, the denoiser assumes that the current and previous pixel are in the same world postion (when it isn't). This causes errors when trying to overlay the image and gather data. This is why we track the motion of the camera, creating a vector to get the same world position pixel. I got this wrong on one of the first attempts, the last attachment (*videos are compressed*) shows that fun video (warning for those who get motion sick). With this, I am able to blur the image, and with some more techniques, I can get rid of "ghosting." :miku: Thank You for Reading :3-blahaj-spinning: In the videos, I rendered them in fullscreen 4k on my better laptop+GPU, don't worry about your system being too slow, just don't fullscreen it <3 (the development was done on my lower end mac). The hours logged are from refactoring the project after the last devlog, and editing the code when I didn't do it in shadertoy's editor. Shadertoy DEMO: shadertoy.com/view/7fBSzR Stardance devlog: stardance.hackclub.com/projects/15129/devlogs/38161 Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/d8703d9d-d091-4bab-b5e4-207b959e8ef6-lightdarkdenoisetest.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/ee3eb8e0-9c0a-49a6-b28c-a3dda57d6096-5f9e1cd6-6afe-439b-bee3-33733f2d73cc.png
summer-of-making emojigithub emojigoose-honk-technologist emoji
—————– Devlog XVI —————– > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). ✨ What did I do? ⭐️ For the quick overview: • Dealt with an issue in Obsidian, as apparently there was “minor rendering performance improvements.” This is FALSE :( - I just downgraded the version • Created the new BufferManager to handle UBOs, SSBOs, VBOs, EBOs, etc. + Dynamic, Static, and Stream buffers. • Integrated the RenderTarget & ShaderPass system from PathTracer straight into IRenderer + added base utilities to it. • Did some formatting Overall the two big things that I did was the new Buffer system & the updated IRenderer interface. For the new Buffers, previously I had UBOs (dynamic values) & SSBOs (big mostly static information blocks) set up in seperate files, that BufferManager returned. Now, every buffer is a single struct called GPUBuffer, and GPUBuffer has a type, and a usage (go look at the images in stardance). Now everything is centralized on that. For the new IRenderer interface, now there are RenderTargets - textures that shaders write to as output - and ShaderPasses - A pass of a shader. These can be added to a registry, keyed by a UUID (big number, in this case). :miku: Thanks for reading!!! :3-blahaj-spinning: Thanks so much @AVD for the Superstar! I’m excited for when I can finally start writing my shaders, it’s getting closer & closer! The fancy Path Tracer will be cool and all, but I have big plans for the Ray Marcher!! Stardance devlog: stardance.hackclub.com/projects/15129/devlogs/37468 Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/Engine
summer-of-making emojigithub emojicooll-dino emoji
----------------- Devlog XV -----------------What did I do? ☀️ I tried getting this out before 4 hours, but it just wouldn't happen. Weird errors kept popping up ~(mostly being my fault)~. Here's a list of what I did: - Figured out generally how I was going to deal with uploading and caching meshes + textures - Put the new *GPUResourceManager* class into place to do the previously mentioned job - Started reworking the renderer pipeline (NOT THE RENDER PIPELINE) on CPU side, and set up the interface class with that - Patched together the old Rasterizer renderer to work with the new IRenderer pipeline - Fixed errors throughout - Split up normal & bump textures - Planned out how I will deal with all the different textures on the shader side, cutting the checks out at shader compile time Yea, I know, it's a lot. It just felt wrong to create a devlog in the middle of everything, since up until after fixing errors I had *nothing* to show for it. :( I ran into this errors when fixing those errors, where the entire model (I was using the Sponza scene, check the *attached video*) was banded, where parts "didn't exist" and the other bands did. This reminded me a lot of the *"Minecraft Farlands"* specifically the pocket edition ones. 🔥 What _didn't_ I do? 💥 To keep this brief: - Fully split up the SSBO system in the BufferManager - Reimplement good use cases of UBOs (although I did put in place double buffering) - Add the more sophicticated data handling in the PathTracer (as I commented it's existance out so I could complile). - Figure out how shadow mapping is going to be cleaned up in the Rasterizer. 🌹 Thanks for reading! :3-blahaj-spinning: These devlogs have been getting more attention, and I'm getting closer to doing a rebrand to finally get my point and final ideas across! :3 Stardance project page: stardance.hackclub.com/projects/15129 Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/0eda6c3a-9565-44e6-b43f-12b45ce0dec4-8bb82cd7-29a1-47ed-8c55-46c9809ea5bb.png
github emojisummer-of-making emojiminecraft emoji
—————– Devlog XIV —————– The Planning - The possible NEW NAME??? - The New Project!! &gt; To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). ✨ So What Happened? :camera_with_flash: I haven’t done much pure coding, HOWEVER, I am getting ready for some large-scale rewrites and additions to the code. For what has happened: • Fully sectioned the resource - disk - and scene - cpu/logic - directories (folders) so there wasn’t any GPU actions taken place. • Refactored resource and scene directories • Re-implemented Application into CMakeLists so I can compile and link that file. • Did some planning for the *huge* renderer rewrite that is coming up. Along with all of that, I came up with a possible name for the application (since, surprisingly, Tempname: Engine is a temp name) I had it when when gazing at the sun through some clouds over a feild. Although it is super basic, so I’m going to have to play with it. ❤️ Thanks for Reading!!! I might have to take a bit of a break from progress on this project, as I have a website that I’m making for my local fire dept. (look out for a new stardance project)! I’m also planning on doing some re-marketing / re-branding (idk what to call it) to change the descriptions of the project (ex. the “To recap section on my devlogs, and the landing page). I’ve been getting more questions on it, and my current explanations are a bit too much. Stardance Devlog: [Stardance Devlog](stardance.hackclub.com/projects/15129/devlogs/33845) Github repo: github.com/pkncoder/Engine Project landing page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/15ed7c30-f973-4ef0-a227-16bd136dfd6f-loadtorenderline.png
github emojisummer-of-making emojigoose-honk-technologist emoji
Devlog XIII Spent some time off from working on this project, started the beginnings of another one. Finally ended up getting the interest to come back to this one > To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). 💡 Overview Commit message for this devlog: > BREAKING CHANGE - New asset system, new scene system, renamed SceneLoader to PrefabSpawner, still need to update rest of code with temp fix until reworking for new system. ✨ What _did_ I do? Previously, the asset manager did still handle caching already loaded assets (models, materials, textures), however the implementation was not professional and temporary: • Caching based on a string key (slow) • Broke the "single responsibility principal" many times by uploading to the GPU & constructing Scene objects Now, I am using AssetHandles (UUIDs) for caching, and I no longer uploading to the GPU in AssetManager. ❌ What _didn't_ I do? This new system is a good start for realigning and separating the different parts of the program, but is only about a third of the work. For what I still need to do, this is what follows: 1. Stop uploading to the GPU in the PrefabSpawner (scene) 2. Fix the renderer and find where I will upload the mesh & texture data. 3. Check for compilation and working across the whole project. 4. Change every instance of AssetManager to using AssetHandles. Once I have these, I can move onto redoing the renderers and FINALLY start working on the "fun stuff" ❤️ Thanks for reading!! ☀️ Github repo: github.com/pkncoder/Engine/tree/Phase-IV Project landing page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/894a457b-cce7-4d60-a170-33cc009bf004-d182ffe9-46af-4a08-9f23-1c6282928423.png
summer-of-making emojigithub emojigoose-honk-technologist emoji
—————– Devlog XII —————– I haven’t done as much programing recently, but yesterday I wanted to finish what I needed to do quickly, as it wouldn’t take that long. &gt; To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). 🎯 UUIDs For a quick explanation of what a UUID is: UUID stands for Universally Unique Identifier. In practice it is a random alphanumeric (a-z,0-9) ID between 64-128 bits. For my project, I used an unsigned 64 bit integer (no negative numbers). It isn’t exactly what the standard for a UUID is, as it isn’t alphanumeric, but I think for now 18.4 quintillion ids are just fine. ⬆️ What Next?? Now that I’ve finished this, the next step is to gut & rewrite the entire asset managing system. I need to redo how files are found, how data is stored, how they are retrieved. Basically the CRUD (create, read, update, delete) line and more. ❤️ Thanks for reading Github repo: github.com/pkncoder/Engine Project landing page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/022c2838-d652-4784-8cc5-f629215f6caf-082680fd-bee3-42f8-bc00-5e0996a26cc8.png
summer-of-making emojigithub emojithinking emoji
----------------- Devlog XI ----------------- I haven't been programming as much, as marching band 🎺 has started, so I've had less time. But now I can do the really exiting stuff! > To recap, my project is a custom made rendering engine that focuses on > diverse rendering options along with high stylistic control (very > high-level explanation). What did I Do? As I mentioned in the last devlog, I have been working on doing a full passthrough of the entire project to get ready for major rewrites. I have completed by refactor checklist, so I have gone through ever cpp file to: Fix warnings Check object method & attribute visibility Check const, static, and inline declarations Change the placement and formatting of method Going through every line of code to do minor logic changes & change formatting Rename methods, attributes, functions, and variables to better names & names w/ personal conventions. Add comments everywhere Change the placement of the #C0BBNECQ9V1 statements (main header file, object interfaces, project files, project packages, extra C++ headers) Run a full clean, compile, and test of the application The LIE Technically I didn't go through every file, as I left AssetManager & Rasterizer. Since these will be completely rewrote soon I felt like it was a waste. What next? Now that I have finished cleaning up the code base, the next projects are to: 1. Move to using UUIDs instead of an entity index in scene 2. Gut AssetManager and rewrite it 3. Change to using metafiles instead of a predetermined path to assets 4. Rework the scene class 5. Extend IRenderer and get ready for the fun part! Thanks for reading!* I tried to keep this one shorter for y'all. I don't normally get too much attention to my devlogs, but I would be more than happy to answer any questions, as there is so much more to this project that even the landing page doesn't cover (WIP). If you're curious, feel free to reach out on slack (pkncoder), and here are some extra links about the project: Github repo: [github.com/pkncoder/Engine](https:/…/Phase-IV) Project landing page: [pkncoder.github.io/Engine](https:/pkncoder.github.io/Engine/index.html)
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/41a5c099-e68e-4290-8189-735f8e6ae7b0-185d518e-b8d4-4f47-9710-6997a9dd5dc7.png
summer-of-making emojigithub emojic emojislack emojigoose-honk-technologist emoji
—————– Devlog X —————– I’ve been working on refactoring my project for the last few hours. Part of how I code includes: Comments throughout to explain the code, strict formatting throughout, and trying to help the compiler with “const” and “inline” keywords. > To recap, my project is a custom made rendering engine that focuses on > diverse rendering options along with high stylistic control (very > high-level explanation). ## The process My process of refactoring usually happens once I finish a new addition, however I haven’t been adding new things for a while. Now that I’ve added a new addition to the project (Event system & LayerStack), I want to go through the entire codebase under the src/ directory (not the glsl shaders). ## Project code stats (src/ directory) Running the command line utility “cloc” on my src/ directory to count code stats, I get these counts:
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                           23            646            464             1930
C/C++ Header                  47            506            205             1302
-------------------------------------------------------------------------------
SUM:                          70           1152            669             3232
-------------------------------------------------------------------------------
Not very big yet, although that will be increased once I get to redoing the entire rendering engine.

## *What I have done*
Now, back to my refactoring. I got through the basics: removing warnings, double checking the public/private attribute declarations on classes & structs, setting const on functions & params, setting inline on functions.

## *The checklist*
This is my entire checklist for refactors, this is my first project using it, so it is still being worked on:
### Refactor Checklist (src/)

1. [x] Fix warnings
2. [x] Fix public vs. private
3. [x] Make functions const when needed
4. [x] Make function params const when needed
5. [x] Make functions inline when needed
6. [ ] Fix placement of functions
7. [ ] Refactor step by step in code
8. [ ] Rename things
9. [ ] Add comments
10. [ ] Place the \#includes in the right spots
11. [ ] Fix file tree
12. [ ] Run ./fullTest
13. [ ] Update the obsidian canvas & png
14. [ ] Update the website
Eventually I will also need to make one for the shaders too, as they are sometimes more technical on the code side. ## Conclusion That’s all that I’ve been doing, thanks for reading. Here is my Github repo & landing page for this application: Source Code: github.com/pkncoder/Engine Landing Page: pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/5645b3eb-64f2-4026-9af1-574a7e968aae-faee28e9-5c19-4203-8423-3410fc4df11e.png
goose-honk-technologist emojigithub emojisummer-of-making emojic emoji
I have been working the past week to get the Event system working & trying to fix pointer / referance issues (there are still a few I haven't figured out). But now I have a working event system. To recap, my project is a custom made rendering engine that focuses on diverse rendering options along with high stylistic control (very high-level explanation). In my previous devlog, I explained the Layer Stack, a top-down structure for controlling object ownership and main loop execution. Every frame, the layer stack runs the first layer to poll camera movement inputs (temp), and then next layer is ran to render out the frame through the RendererManager. This is great, but where the layer stack really shines is the event system. Events are reactions to when anything happens, keys being pressed / released, the window resizing, etc. When an event is dispatched, the layerstack stops, loops through each layer running it's "onEvent" function to let that layer react (ex. the final render needing it's texture resized). If a layer doesn't want below layers to react to the event, it can consume it, stopping the event dispatching and continuing execution. I struggled a ton with the event state not updating correctly, and the camera not giving the right values to render the triangles. It turned out to be objects/classes duplicating, and not being able to update. There is so many debug messages in the terminal 😭 This was all front-end changes (no change in the render), but now there is a better system put in place (back end changes). Github repo: github.com/pkncoder/Engine/tree/Phase-IV Landing page / Website: &lt;https://g|https://&gt;pkncoder.github.io/Engine
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/4408dff0-2a61-46b3-8978-096dd953bf44-phase-iv-architecture.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/34cb6304-73a4-4b5d-918b-7313f1749ff4-767d320b-2725-42c9-a3ce-8f8e779333a0.png
summer-of-making emojigithub emojidino-debugging emojireact emoji
Tempname: Engine update. I am so tired To keep it all contained, since the last devlog I have: - Merged Phase-III into main & created a Phase-IV branch - Changed the landing page's color palette - Modified the target architecture 4 times (3 committed) - Created a rudimentary SceneManager class - Implemented an EngineContext class to distribute ownership & to help with data flow+containment - Implemented a layer system to help cut down on application & to contain/host the events system. - Finally put in the system directory (folder) in the architecture that will host any simulations, computations, and animations. Currently it is the planned details for the camera system. The biggest thing that I have done so far is the layer system & state/context creation. The layer system is like a regenerating stack of pancakes 🥞. Before you cast your pancake regeneration spell we all have, you have to prep the pancakes with butter and syrup. Each time you finish the pancakes, a new round starts and you eat them again. Then, once you are done, you have to disable the regeneration spell. The layer system acts the same, but computationally & layers instead of pancakes. Each layer goes through the lifecycle of onAttach -> onUpdate -> onDetach. By far the biggest reason for the layer system is the event system, but I'll leave that for the next devlog. Here is the github page: github.com/pkncoder/Engine/tree/Phase-IV Here is the landing page: pkncoder.github.io/Engine I still have soooo much to do, especially with & after the event system. I've completed most of the easy stuff for Phase-IV. Here is the current architecture & a site screenshot.
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/c7a9c39f-098d-40a1-95a5-97865920540d-screenshot_2026-07-06_at_3.45.52___am.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/fe291ef4-4711-43d0-9a95-e43403627dcd-phase-iv-architecture.png
summer-of-making emojigithub emoji
Changed my mind on shipping, however I do now have a landing page! I still have to do things like changing the color palette (it's alright now, but I want something different I think), adding little details to really sell the "Rendering" aspect of this, etc. etc. Here's the landing page, please check it out & give any feedback! pkncoder.github.io/Engine/index.html Since I changed my mind on shipping, here are those images that I was going to use!
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/65cda477-d6b7-44c7-bbdf-3b08408cb22c-sponza-1.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/4fd36b24-285c-4242-b02b-ed1d7b9f6b3e-queerroom-1.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/f865ca65-8ba5-4123-aa91-18b7e1f2db70-backrooms-2.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/01723a02-a0d8-4b43-9974-9d58febdef5c-lost_empire-1.png
rac_woah emojithinking emojisummer-of-making emojithis emoji
Just got done with some renders on the engine, been working all day on implementing the things needed. Along with the images, I added: Shadow Mapping for the Rasterizer (only 1 emitter) Tone mapping to the Rasterizer Fog to the Rasterizer A vignette effect to the Rasterizer Transparency maps to the Rasterizer Settings & presets for the renders * A new "Queer Room" modeled by me in blender for the Path Tracer (going to post it on ship). I honestly have had so much fun with this. Currently working on a landing page to go in place of my "Online Demo" on stardance (since this isn't that kind of application D: ). Here's the github: github.com/pkncoder/Engine/tree/Phase-III! At some point I'll be redoing the README as well for more info. Also, these images aren't even the best ones, I'll leave that for the ship :3
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/7c35d259-e1d7-4bb4-aa0a-e955623898b7-breakfastroom-1.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/ab75b4f1-0bea-44dc-bb06-b1db2c1a2129-sponza-2.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/3aa06f80-bb9f-4337-827e-4a1a25f94c6d-backrooms-1.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/965781c4-c8bd-476e-92fc-25d6e11f6bf4-sponza-3.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/1552baa1-b8a2-43a1-b5d8-52c0dec2b588-lost_empire-2.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/98bce55c-4305-4299-ab5d-88269d1aa2b8-ca97a3b1-1446-4243-afe0-65af2b6e075d.png
summer-of-making emoji🚢github emojiblender emoji
I forgot about acceleration structures, so I planned that out as well in the renderer. Currently just: • BVH (Bounding Volume Heirarchy) for Ray & Path Tracing • SVO (Sparse Voxel Octree) for Ray Marching (Hypothetically) These acceleration structures make rendering methods like Ray & Path Tracing, Ray Marching, Ray Casting, etc. feasible for real-time by "cutting out" data (objects) similar to how a Binary Tree works.
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/804124bf-611d-44b5-bd04-cc0fc1d3c6e7-image.png
summer-of-making emoji
I have finished getting albedo (basic color) textures loading. To get this working I had to redo how meshes were loaded completely, but I finally finished that. The biggest problems I had was getting the backrooms model to render correctly, as the previous models I had, all of the textures were in a "baked" form, which my renderer does not support. Finally I found a free non-baked one that was really good, but there was just a few issues with normals, and after I fixed that in blender shading issues showed up, and then UV issues. However the model is mostly fixed now! If you would like to try for yourself, the github repo is here: github.com/pkncoder/Engine/tree/Phase-III. The repo is large currently, as I still need to compress the files, or remove them (gitignore). The Path Tracer is currently disabled, as I need to swap the textures to handles, and then modify the PathTracer to work with the textures. It will look really good once I get that working though!
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/b9b90025-2b78-4c46-8c6e-2e3d467eb942-2026-06-19_00-40-47.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/2ac6febc-5c7e-4dcb-9797-ccea8a75d6cb-2026-06-19_00-39-43.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/a85c63fb-8eae-48e9-bbb2-2d61bd6c8d73-2026-06-19_01-34-41.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/335739ae-ed62-4ffb-b894-14fce751e4e4-2026-06-19_00-58-06.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/d4e730de-fde0-43a5-953d-633bfb682a1b-2026-06-19_01-29-43.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/a7c1743f-1934-4588-9823-a6fe10028752-daae3570-97cb-4e72-a9fd-b1b64754bded.png
upvote emojispring-of-making emojigithub emojiblender emoji
Here's that diagram for how the program currently interacts with itself. • Anything purple (besides the background) is a temporary connection/file. • Anything green needs re-worked • The "Services" group contains files that are completely static in use, and are accessible globally. It's still a bit messy, but that's partly due to the temporary/need re-worked files. There's a still some spaghetti code due to that. The shader files I do look a lot like spaghetti as well, but that is mostly do to positioning. It's pretty basic, as the ui/ and system/ dirs aren't in there either (system/ is simulations + any computations that would need to be done (ex. translating data for one renderer to another)).
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/820b9678-01f9-43e9-bbaf-c6580551eb5a-archetecture.png
spring-of-making emojigoose-honk-technologist emojiyay emoji
I'm working on my Engine project. Just redid most of the data management in the PathTracer renderer. I'm almost done with this development phase, so that's fun. Tempname: Engine (yes that's the name) is a custom-built 3d engine that will support rendering complex scenes not only in a very stylized manner, but with a suite of techniques not normally seen. The renders not only will be high-quality and efficient, but will also have the ability for basic animations (no keyframes, but a simple system of startpos-endpos or along a drawn curve w/ velocity controlled by a graph). I like to think of those GIFs of scenes that have simple things like grass blowing, or a flag blowing in the wind. There's so much more to this that is way to much to fit into a small explanation, but there is more information at the github page: github.com/pkncoder/Engine/tree/Phase-III (ignore the main branch). Here's some random images from it (no textures yet, that should be soon. Then the backrooms really will feel like the backrooms):
https://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/18d6b4dc-6fdb-4e18-ae61-825b56e9a554-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/62a8d8e3-78cf-49ea-9e73-39dd81ad83d4-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/c4a692a5-bee0-4b67-89a7-db40611e299e-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/11172f28-b77c-4092-931c-2e5c1df02da3-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/6f5e6969-9163-41ef-8105-39ca8d969225-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/1c73d300-0946-46cc-8920-dbae6a423c05-image.pnghttps://scrapbook-into-the-redwoods.s3.us-east-1.amazonaws.com/8023a6a9-119b-431f-8312-e8a7b5b2c51a-f2a12937-b43d-4ad2-becc-80b3489d175e.png
thinking emojispring-of-making emoji📈