<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: EmberNoGlow</title>
    <description>The latest articles on Forem by EmberNoGlow (@embernoglow).</description>
    <link>https://forem.com/embernoglow</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3617909%2Fd3b79db8-0f98-4dd1-b5c8-7b3fbe213b86.jpg</url>
      <title>Forem: EmberNoGlow</title>
      <link>https://forem.com/embernoglow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/embernoglow"/>
    <language>en</language>
    <item>
      <title>Anthropic leaked the source code of Claude Code (TS), but it was immediately rewritten in Python.🤣</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Tue, 31 Mar 2026 14:59:20 +0000</pubDate>
      <link>https://forem.com/embernoglow/anthropic-leaked-the-source-code-of-claude-code-written-in-ts-but-it-was-immediately-rewritten-in-210l</link>
      <guid>https://forem.com/embernoglow/anthropic-leaked-the-source-code-of-claude-code-written-in-ts-but-it-was-immediately-rewritten-in-210l</guid>
      <description>&lt;p&gt;Hello everyone!&lt;/p&gt;

&lt;p&gt;Today on BlueSky, I saw a post linking to a Github repository of Claude's source code, rewritten in Python.&lt;/p&gt;




&lt;p&gt;This is probably the weirdest thing that's happened this week. lol, the funniest thing is that it'll now be harder for Anthropic to demand that this code be removed because it doesn't infringe copyright.&lt;/p&gt;

&lt;p&gt;In short, as always, this is weird. I'm probably not the first to tell you this news. I don't know if it works, but the repository doesn't inspire confidence in me. The repository quickly went viral (30k+ stars in 20 minutes) and its Issues are quite spammy... &lt;/p&gt;

&lt;p&gt;By the way, he's already rebranded several times in the last half hour, so my suspicions about copyright infringement are becoming more and more confirmed.&lt;/p&gt;

&lt;p&gt;Also, the author of this "remake" has started making a port to Rust. 😨&lt;/p&gt;

&lt;h2&gt;
  
  
  Discuss
&lt;/h2&gt;

&lt;p&gt;What's your opinion? Do you think the repository will be removed?&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/instructkr" rel="noopener noreferrer"&gt;
        instructkr
      &lt;/a&gt; / &lt;a href="https://github.com/instructkr/claw-code" rel="noopener noreferrer"&gt;
        claw-code
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Better Harness Tools, not merely storing the archive of leaked Claude Code but also make shit things done. Now rewriting in Rust.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Rewriting Project Claw Code&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/instructkr/claw-code/assets/clawd-hero.jpeg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Finstructkr%2Fclaw-code%2FHEAD%2Fassets%2Fclawd-hero.jpeg" alt="Claw" width="300"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;Better Harness Tools, not merely storing the archive of leaked Claude Code&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/sponsors/instructkr" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d90dc1bfe7506283e392cf1ad17a505ee252fb64fe5b3965f42c3ca07e6bb34c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53706f6e736f722d2545322539442541342d70696e6b3f6c6f676f3d676974687562267374796c653d666f722d7468652d6261646765" alt="Sponsor on GitHub"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-alert markdown-alert-important"&gt;
&lt;p class="markdown-alert-title"&gt;Important&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rust port is now in progress&lt;/strong&gt; on the &lt;a href="https://github.com/instructkr/claw-code/tree/dev/rust" rel="noopener noreferrer"&gt;&lt;code&gt;dev/rust&lt;/code&gt;&lt;/a&gt; branch and is expected to be merged into main today. The Rust implementation aims to deliver a faster, memory-safe harness runtime. Stay tuned — this will be the definitive version of the project.&lt;/p&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;If you find this work useful, consider &lt;a href="https://github.com/sponsors/instructkr" rel="noopener noreferrer"&gt;sponsoring @instructkr on GitHub&lt;/a&gt; to support continued open-source harness engineering research.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Backstory&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;At 4 AM on March 31, 2026, I woke up to my phone blowing up with notifications. The Claude Code source had been exposed, and the entire dev community was in a frenzy. My girlfriend in Korea was genuinely worried I might face legal action from Anthropic just for having the code on my machine — so I did what any engineer would do under pressure: I sat down, ported the core…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/instructkr/claw-code" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>github</category>
      <category>ai</category>
      <category>discuss</category>
      <category>python</category>
    </item>
    <item>
      <title>I decided to try gamedev in C++. My experience was toxic!</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Sun, 22 Mar 2026 07:54:09 +0000</pubDate>
      <link>https://forem.com/embernoglow/i-decided-to-try-gamedev-in-c-my-experience-was-toxic-2n7o</link>
      <guid>https://forem.com/embernoglow/i-decided-to-try-gamedev-in-c-my-experience-was-toxic-2n7o</guid>
      <description>&lt;p&gt;I decided to dig into C++ with harfang3d. I used Visual Studio, CMake, and a lot more than I can remember. This post might be a bit hateful, but I'll say it right away: I &lt;strong&gt;respect&lt;/strong&gt; other people's work, but they could have done &lt;strong&gt;better&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How did this start?
&lt;/h2&gt;

&lt;p&gt;I've been wanting to find a game engine for a long time that's a library, not a cumbersome IDE. I know Godot well, but I got tired of the interface and decided to look for something new. Something new to experience. And yes, there were so many that I almost drowned in the rush.&lt;/p&gt;

&lt;p&gt;The list is long. I tried PyGame, Panda3D, and even tried drawing everything manually using OpenGL. But no, it was all limited. And then I found Harfang3D.&lt;/p&gt;

&lt;p&gt;I immediately typed &lt;code&gt;pip install harfang3d&lt;/code&gt;. Yes, it installed. I went to ChatGPT so he could explain everything to me. I wanted to stick to the "AI as Teacher" strategy I described in &lt;a href="https://dev.to/embernoglow/from-zero-to-sdf-editor-beta-how-i-used-ai-to-force-my-dream-project-out-of-the-prototype-stage-46fi"&gt;my post&lt;/a&gt;. But it wasn't to be!&lt;/p&gt;

&lt;h2&gt;
  
  
  Something went wrong
&lt;/h2&gt;

&lt;p&gt;The problem was that the Python bindings were poorly implemented, at least according to GPT. It couldn't give me working code. So I decided to surf the internet and search for tutorials and examples. I found one. I installed it. It didn't work. I Googled the problem. I found a solution. I did it. It didn't work! It's so trivial, but it's painful!!! In the end, left alone with Python and this beast, I decided, as the saying goes, "I don’t give a hoot".&lt;/p&gt;

&lt;h2&gt;
  
  
  I switched to C++
&lt;/h2&gt;

&lt;p&gt;According to this "fool" GPT, I switched to cpp and that was a mistake. It's all broken down into several painful steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visual Studio
&lt;/h2&gt;

&lt;p&gt;I didn't have the program installed. I was using Code. I decided to fix it. It was pretty easy. I went to the website, clicked a button. I waited. I launched it. The installation was in progress. It took a while, though. After the installation, another installer appeared.&lt;/p&gt;

&lt;p&gt;So wait, why is my installer downloading another installer?! Isn't that pointless? Okay, let's move on.&lt;/p&gt;

&lt;p&gt;I select the components I need to install. But something was wrong. The functionality confused me. Okay, I continued the installation anyway. Why is it so big?!&lt;/p&gt;

&lt;p&gt;During the installation, I decided to check the installation tutorial and saw this. Why does this installer look different?! Seriously, why is my installer stripped down, lol?! There were two tabs. The installer didn't have a language option, or a path option. What is this?! This is the official website. I don't remember which version I downloaded, but I decided to uninstall it anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remove VS
&lt;/h2&gt;

&lt;p&gt;Guess what? After installation, my installer took a long time to load. I waited 5 minutes, and it just kept loading. I decided to uninstall everything the old-fashioned way. I ran Revo Uninstaller, and to my surprise, after uninstalling the program, nothing was deleted except the executable file! That's how Microsoft protects itself from people like me.&lt;/p&gt;

&lt;p&gt;Okay, I decided to delete the entire folder. I clicked "uninstall with Revo" and... &lt;strong&gt;I CLICKED ON CODE!!!!!&lt;/strong&gt; Guys, I'm such an idiot! Well, I don't need to say anything else; you already know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install 2
&lt;/h2&gt;

&lt;p&gt;I downloaded Code back. What a great installer! Why couldn't Microsoft just squeeze Visual Studio into an MSI like this? It's so convenient! No, they need installers that take half an hour to run (and whose telemetry was blocked by my firewall).&lt;/p&gt;

&lt;p&gt;Regarding Visual Studio, I was able to successfully install it as required. Victory, it seems! But that was &lt;strong&gt;just the beginning&lt;/strong&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Harfang3D
&lt;/h2&gt;

&lt;p&gt;You can't change a person. So did I. I approached my friend. GPT told me I needed to download the repository and put it in the project folder. Then configure something in the editor and specify an include, I don't know.&lt;/p&gt;

&lt;p&gt;He gave me the code. It was broken again! I couldn't figure out what the problem was. It couldn't find include and lib. GPT Chat insisted they were in the repository, but they weren't!&lt;/p&gt;

&lt;p&gt;Okay, try number 2.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Harfang3D 2
&lt;/h2&gt;

&lt;p&gt;This time, I decided to do everything manually. I went to the repository, read the Readme and documentation, and downloaded the example. But I couldn't find anywhere how to download it and install it in VS! Perhaps for those who know C++, this is basic, but for me, it was hell.&lt;/p&gt;

&lt;p&gt;Well, this time, Brave came to the rescue. I asked it how to install it. It gave me a bunch of commands: git, create a directory, compile C++.&lt;/p&gt;

&lt;h2&gt;
  
  
  I burned out
&lt;/h2&gt;

&lt;p&gt;This was the culmination. It turned out I had the wrong CMake. Again, reinstallation. Then compilation. My head was spinning. The terminal, console, or whatever it was, was saying I didn't have Visual Studio.&lt;/p&gt;

&lt;p&gt;How could this... 🤯 Okay, everything's in the recycle bin! I'm fed up!&lt;/p&gt;

&lt;h2&gt;
  
  
  Final
&lt;/h2&gt;

&lt;p&gt;I don't remember how long I spent on this; it felt like an eternity. Finally, I'll give you some advice, as a regular noob user. Don't make installers like that. Put everything in MSI or something similar. I'm so tired...&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>cpp</category>
      <category>discuss</category>
      <category>learning</category>
    </item>
    <item>
      <title>Modularity - An Overrated Anti-Pattern? The Power of the Monolithic Script in the Age of AI.</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Sat, 21 Feb 2026 17:31:59 +0000</pubDate>
      <link>https://forem.com/embernoglow/modularity-an-overrated-anti-pattern-the-power-of-the-monolithic-script-in-the-age-of-ai-5oc</link>
      <guid>https://forem.com/embernoglow/modularity-an-overrated-anti-pattern-the-power-of-the-monolithic-script-in-the-age-of-ai-5oc</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Disclaimer: This post isn't a manifesto against modularity, but rather a description of a temporary approach for solo developers actively using LLM during rapid iteration and prototyping. For production, large teams, and long-term projects, modularity remains the gold standard.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Hello everyone 👋&lt;/p&gt;

&lt;p&gt;I would like to share my experience (based on my &lt;a href="https://github.com/EmberNoGlow/SDF-Model-Editor-Demo" rel="noopener noreferrer"&gt;project&lt;/a&gt;), or rather advice on why refactoring is your (and AI's) potential bottleneck and how to solve the problem if you are faced with breaking your monolithic 1000-line script into modules.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;We've all seen this path: a tiny script suddenly balloons to 500 lines. Then comes the moment when, following the advice of seasoned colleagues, we start the "proper refactoring": creating &lt;code&gt;utils/&lt;/code&gt;, &lt;code&gt;parsers/&lt;/code&gt;, and proliferating &lt;code&gt;__init__.py&lt;/code&gt; files. But in an era where our main co-author is an LLM, this beauty becomes a hindrance.&lt;/p&gt;

&lt;h3&gt;
  
  
  But why is modularity your source of friction?
&lt;/h3&gt;

&lt;p&gt;If your code works in a single file, that's good. But your project grows. The line count increases. You start getting confused. You decide to refactor. You do it manually because you understand that an AI's advice will turn into another "find -&amp;gt; copy -&amp;gt; paste" quest. But suddenly, you realize something is wrong.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You have too many files.&lt;/li&gt;
&lt;li&gt;  You realize it’s messy.&lt;/li&gt;
&lt;li&gt;  It’s an illusion of structure.&lt;/li&gt;
&lt;li&gt;  It introduces dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Technical Problems Begin
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Dependencies
&lt;/h3&gt;

&lt;p&gt;You need to create a file to list global variables. Your project has bloated. Half the files are just importing dependencies. It looks structured from the outside, but it’s internal chaos.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; Your script A now depends on the function &lt;code&gt;process_data()&lt;/code&gt; from the module &lt;code&gt;utils.helpers.data_cleaner&lt;/code&gt;. For this to work, A needs &lt;code&gt;from utils.helpers.data_cleaner import process_data&lt;/code&gt;. Now, if you rename &lt;code&gt;data_cleaner&lt;/code&gt; to &lt;code&gt;sanitizer&lt;/code&gt;, you are forced to change it in a dozen places, whereas in a monolith, you would only need to change &lt;code&gt;def process_data&lt;/code&gt; to &lt;code&gt;def sanitize&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submitting to AI
&lt;/h3&gt;

&lt;p&gt;If you rely heavily on AI assistants for code generation, managing a modular project can become cumbersome. The AI might struggle to keep track of complex dependency graphs, leading to errors in code generation or suggestions that break existing functionality.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Key point&lt;/em&gt;: AI is not a project manager. It is an &lt;strong&gt;executor&lt;/strong&gt;. It works best with a complete, self‑contained context — a single file often provides this more reliably than a collection of interconnected modules.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Monolith as a Solution
&lt;/h2&gt;

&lt;p&gt;If you have one file, it's beneficial for several reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Local dependencies are resolved. You declare everything - classes, functions, variables - in one file.&lt;/li&gt;
&lt;li&gt;It's easier to send the AI one file than multiple files.&lt;/li&gt;
&lt;li&gt;It's easier for the AI to parse one file than to reason about the availability of local dependencies from specific project directories.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Pitfalls
&lt;/h2&gt;

&lt;p&gt;A single file can be perceived as a problem simply because it gets huge.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You get confused.&lt;/li&gt;
&lt;li&gt;You have to use Ctrl+F to jump to a specific class or function.&lt;/li&gt;
&lt;li&gt;Others find it hard to understand.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  When monolithic design is a bad idea
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Teamwork.&lt;/li&gt;
&lt;li&gt;Code that will be maintained for a long time.&lt;/li&gt;
&lt;li&gt;Projects with clearly defined components (web API, database, data processing).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  But these problems have solution.
&lt;/h3&gt;

&lt;p&gt;Use regions. Seriously, it’s simple. It’s fast. It costs you 6-9 extra characters in the code. By using &lt;code&gt;#region&lt;/code&gt; and &lt;code&gt;#endregion&lt;/code&gt; (alternatives exist in other languages too), you can easily break the code into blocks. For example, you can declare all classes in &lt;code&gt;#region Classes&lt;/code&gt; and helper functions in &lt;code&gt;#region Helpers&lt;/code&gt;. It’s convenient. Practical. Clean. And with IDE extensions (for example, &lt;a href="https://marketplace.visualstudio.com/items?itemName=txava.region-marker" rel="noopener noreferrer"&gt;Region Maker&lt;/a&gt; for VScode), it becomes an excellent experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The best code is the code that isn't written, but seriously - choose what works best for &lt;em&gt;you&lt;/em&gt;.  Good luck!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Your Tasks Are Too Small (And It’s Slowing You Down) - Perform tasks in parallel</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Tue, 27 Jan 2026 15:45:10 +0000</pubDate>
      <link>https://forem.com/embernoglow/your-tasks-are-too-small-and-its-slowing-you-down-perform-tasks-in-parallel-39ae</link>
      <guid>https://forem.com/embernoglow/your-tasks-are-too-small-and-its-slowing-you-down-perform-tasks-in-parallel-39ae</guid>
      <description>&lt;p&gt;We've all heard advice like "break big tasks into smaller ones" and "don't try to tackle everything at once." But does this really work? Or can small tasks actually limit us?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Teams spend 30% of their time planning subtasks that later turn out to be redundant. Here’s why.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why decomposition is popular
&lt;/h2&gt;

&lt;p&gt;By breaking a large task into smaller ones, we get a lot of "cool features":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduced cognitive load&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More accurate estimation&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visibility of progress&lt;/strong&gt; (many small checklists are closed).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ease of work distribution&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But this can negatively impact your productivity. And no, this problem is not just one point. All of the above benefits can turn your project into a living hell.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;If you work in a &lt;strong&gt;SMALL team, or even alone&lt;/strong&gt;, task splitting is your main enemy, and here's why:&lt;/p&gt;

&lt;h3&gt;
  
  
  small tasks encourage not the achievement of a goal, but the checking off of a checklist.
&lt;/h3&gt;

&lt;p&gt;Let's imagine a situation. You're creating a code editor (for example, something like Notepad++ or a mini version of Code). Your large task consists of several items (this is what a "code editor" actually is):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Text field, syntax highlighting and checking&lt;/li&gt;
&lt;li&gt;Terminal, output, console.&lt;/li&gt;
&lt;li&gt;Interface.
Ranking the importance of these three items would seem easy – first, let's create a text field, then a console, then an interface.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Okay, you've gotten to work, starting with item 1.&lt;br&gt;
We'll break this item's task down into smaller ones, and end up with something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a window&lt;/li&gt;
&lt;li&gt;Create an interface&lt;/li&gt;
&lt;li&gt;Create a text input element&lt;/li&gt;
&lt;li&gt;Create syntax highlighting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay. Let's complete the tasks in order and move on to the next item: console, terminal, output. Let's break it down into smaller steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an interface element&lt;/li&gt;
&lt;li&gt;Create a function that launches a console process&lt;/li&gt;
&lt;li&gt;Create a command input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, this task turned out to be easier than the &lt;strong&gt;previous one&lt;/strong&gt;. But did you see that creating an interface and input is common to both tasks?&lt;/p&gt;

&lt;p&gt;That's the problem with decomposing large tasks—you don't realize that the broken tasks might overlap, and you'll have to do another step that you could have combined into one.&lt;/p&gt;

&lt;p&gt;This brings us to the next point:&lt;/p&gt;

&lt;h3&gt;
  
  
  It takes a lot of time!
&lt;/h3&gt;

&lt;p&gt;While you're planning stages, breaking tasks down into smaller ones, checking for overlapping task types, and even taking notes and estimating them, this wastes 80% of your time. This is even more pronounced if you're doing this not in a simple notepad but in a specialized app, you quickly get sucked into the game and don't notice how time flies.&lt;/p&gt;

&lt;p&gt;At least you have a clear plan, which will benefit your team, but mostly, it's a waste of time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tasks that are too small may be assessed
&lt;/h3&gt;

&lt;p&gt;If you've created a detailed estimating plan, you might have added a task that's so small it doesn't deserve attention. For example, the task "Change the color of the button" &lt;em&gt;isn't worth estimating. It's worth 5 minutes. If estimating takes 5 minutes, you're in the red.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Moral component
&lt;/h3&gt;

&lt;p&gt;It would seem the most obvious. The bigger the task, the harder it is to pull yourself together. However, the more small tasks you have, the more daunting it is to tackle them, due to the sheer volume of work involved.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what should we do then?
&lt;/h2&gt;

&lt;p&gt;The answer is simple: divide large tasks into several chapters, and work on these chapters in parallel. For example:&lt;/p&gt;

&lt;p&gt;We want to create a code editor. We've already defined what it is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Text input&lt;/li&gt;
&lt;li&gt;Debugging tools&lt;/li&gt;
&lt;li&gt;Interface&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now let's work on all three of these chapters in parallel:&lt;br&gt;
Create a program window -&amp;gt; create a text field -&amp;gt; create a terminal field.&lt;br&gt;
And we immediately see the finished result. Of course, this isn't a finished application yet, but it's more than just checking off a checklist.&lt;br&gt;
We can further improve the functionality using the same principle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is this method better?
&lt;/h2&gt;

&lt;p&gt;We're essentially dividing the task not into a million subtasks, but into several larger parts. By completing these tasks in a staggered, parallel fashion, it's easier to "kill two birds with one stone." While this creates "creative chaos," it also saves you from the main problem: getting stuck on one task and not being able to start others until you've completed it. Thanks to chaos, you can always return to it later, even in a few days or even weeks. After all, the world is chaos, and perfect planning disrupts it.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>performance</category>
      <category>development</category>
    </item>
    <item>
      <title>I made a game using Copilot CLI - was it a total failure or not so bad?</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Sun, 25 Jan 2026 15:02:13 +0000</pubDate>
      <link>https://forem.com/embernoglow/i-made-a-game-using-copilot-cli-was-it-a-total-failure-or-not-so-bad-1k4m</link>
      <guid>https://forem.com/embernoglow/i-made-a-game-using-copilot-cli-was-it-a-total-failure-or-not-so-bad-1k4m</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hello, dev community!!! 🖐&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I created a game in Godot using GitHub copilot. But was everything as great as I thought?&lt;/p&gt;

&lt;h3&gt;
  
  
  Why didn't I choose my dream project - &lt;a href="https://github.com/EmberNoGlow/SDF-Model-Editor-Demo" rel="noopener noreferrer"&gt;SDF Editor&lt;/a&gt;?
&lt;/h3&gt;

&lt;p&gt;I wanted to create something new, and I wanted Copilot to do everything for me. But something didn't work out, and it turned out the other way around.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/EmberNoGlow/hollow-pilot/" rel="noopener noreferrer"&gt;Hollow Pilot&lt;/a&gt; is a game inspired by Hollow Knight. It includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Movement mechanics – jumping, dashing, walking&lt;/li&gt;
&lt;li&gt;Combat system – attacking, healing, dying, defeating bosses&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'd like to believe it's cool, but there's one big problem...&lt;/p&gt;

&lt;h2&gt;
  
  
  What was wrong?
&lt;/h2&gt;

&lt;p&gt;Well, it's easier to say what was good. Okay.&lt;/p&gt;

&lt;p&gt;The biggest problem is that copilot doesn't know how to make games:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;He can't write scenes.&lt;/li&gt;
&lt;li&gt;He might have made mistakes in the language syntax.&lt;/li&gt;
&lt;li&gt;He can't connect the scene and the script, so I did everything.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The most minor thing was that everything looked as bad as possible. There were no animations (I didn't bother making them, I'm too lazy). The movement logic looks terrible, especially for the boss.&lt;/p&gt;

&lt;h2&gt;
  
  
  The positive side
&lt;/h2&gt;

&lt;p&gt;Things were bad, so I made them worse! Just look at this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwg5gvo54jy4lgtx8pr26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwg5gvo54jy4lgtx8pr26.png" alt="Demo" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And video link: &lt;a href="https://github.com/EmberNoGlow/hollow-pilot/blob/main/Demo.mp4" rel="noopener noreferrer"&gt;Demo.mp4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You ask, what's going on, dude?!&lt;/p&gt;

&lt;p&gt;Well... &lt;strong&gt;It's a reflection of the technical crisis.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Why is Reddit here?&lt;/strong&gt; - It was a weird decision - I was just reading a post on reddit and I didn't like the comment there, so... lol, what's that related?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What is this place?&lt;/strong&gt; - I didn't have the energy to make a location from Hollow Knight, and I didn't have the energy to look for assets for his style, so this is what I came across&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;This is where the fun begins. I successfully installed it, launched it and started creating.&lt;/p&gt;

&lt;p&gt;But then something went wrong:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I asked for the code to be printed, but I forgot to specify the directory, lol. All the files were in the user folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Okay, I moved the files. I opened them in Godot. But the scenes wouldn't open. The file syntax was completely different, so I had to create the scenes myself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There were syntax errors in the code too, of course.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But the most interesting thing is that copilot simply hates @onready – a special variable type used to declare nodes or resources after the ready function has been called (i.e., when the scene is loaded, nodes can't exist unless the scene also doesn't exist). The problem was that it was writing the entire path to the node, which is why there were many related errors.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Copilot is certainly a powerful tool, but it's completely unsuitable for game development. I also didn't notice any differences from the web version of Copilot, other than the lack of an interface. It does everything equally well, or poorly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do we have in the end?
&lt;/h2&gt;

&lt;p&gt;Well, a game that works "through a stump-deck"&lt;/p&gt;

&lt;p&gt;And also 3 days wasted&lt;/p&gt;

&lt;p&gt;I hope this isn't my last game, and in the future, when "better times come," I'll make something better. Or I'll write another article where I write about how bad everything is.&lt;/p&gt;

&lt;p&gt;Of course, I wanted to do something more, at least write this article in more detail and more beautifully, but "AI just sucked all the juices out of me." See you all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it:
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://eng0.itch.io/hollow-pilot" rel="noopener noreferrer"&gt;Itch.io&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
🔗 &lt;strong&gt;&lt;a href="https://github.com/EmberNoGlow/hollow-pilot" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>From Zero to SDF Editor Beta: How I Used AI to Force My Dream Project Out of the Prototype Stage. What I learned?</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Fri, 09 Jan 2026 12:20:53 +0000</pubDate>
      <link>https://forem.com/embernoglow/from-zero-to-sdf-editor-beta-how-i-used-ai-to-force-my-dream-project-out-of-the-prototype-stage-46fi</link>
      <guid>https://forem.com/embernoglow/from-zero-to-sdf-editor-beta-how-i-used-ai-to-force-my-dream-project-out-of-the-prototype-stage-46fi</guid>
      <description>&lt;p&gt;I've released a beta version of my &lt;a href="https://github.com/EmberNoGlow/SDF-Model-Editor-Demo" rel="noopener noreferrer"&gt;SDF Model editor&lt;/a&gt; project. This is my first major project that I'm trying to "push past MVP".&lt;/p&gt;

&lt;h2&gt;
  
  
  How it all began
&lt;/h2&gt;

&lt;p&gt;I've long been interested in real-time rendering. I started learning glsl. I came across this article by &lt;a href="https://iquilezles.org/articles/smin/" rel="noopener noreferrer"&gt;Inigo Quilez&lt;/a&gt; and realized that my mathematical knowledge...&lt;/p&gt;

&lt;p&gt;Long story short, I decided to create my own full-fledged 3D editor that would allow artists to create 3D models using simple shapes. The main idea was a fresh approach (not really all that new, to be honest) to traditional modeling – to ditch all that sculpting and polygonal editing, and instead move spheres and boxes around like a little kid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Process
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Initial, December 2025&lt;/th&gt;
&lt;th&gt;Beta, January 2026&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhhtpozsjx10tvf81agv.png" alt="SDF Model Editor Early" width="800" height="434"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzh2r05hisf5c7a5dkyac.jpg" alt="SDF Model Editor Beta" width="800" height="449"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I read a lot of articles and used a fair number of AI models to learn. I used the AI not as a co-developer, but as a "teacher." I didn't ask questions like "how to do it", but rather "how and why it works." And after I understood "how and why", I started asking copilot to write code based on the AI's thinking.&lt;/p&gt;

&lt;h3&gt;
  
  
  And what happened?
&lt;/h3&gt;

&lt;p&gt;It was terrible. But it worked. I started studying the code. It was a far cry from what it is now. It was written in Pygame and consisted of 500 lines of code. I couldn't do anything except rotate the camera, which didn't even do that correctly 🤦‍♂️.&lt;/p&gt;

&lt;p&gt;I got bored. I abandoned it. But I got bored, so I continued. It took me a month to move away from Pygame and switch to Imgui, as well as fix the code. Everything worked well, and I was thrilled with the result.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cursor
&lt;/h3&gt;

&lt;p&gt;I decided to download &lt;a href="https://cursor.com/" rel="noopener noreferrer"&gt;cursor ai&lt;/a&gt;. Everyone was talking about how much it could do. I prompted it to completely refactor the code and add functionality, adding primitives and operations. And it was a miracle. I started studying the new code and customizing it.&lt;/p&gt;

&lt;p&gt;That was good, but I still had to do the input. I turned to cursor and... It turned out my limit had been reached 👎. I went back to copilot. And it was strange - for some reason, copilot kept putting spaces after periods! It took me half an hour to fix the code. And what happened? It didn't work. I repeated this until I reached my limit. I'm already tired and barely got everything working. I posted the project on GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Publish
&lt;/h3&gt;

&lt;p&gt;Publishing on GitHub motivated me to develop the project. Even though views were low, I still wanted to finish the project. Step by step, I improved the bugs slightly, sometimes using AI for refactoring, testing, and bug detection (even though it often created these bugs itself). Overall, I realized how bad AI is for large projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Now
&lt;/h3&gt;

&lt;p&gt;24 days have passed since then.&lt;br&gt;
It felt like months had passed. I can't believe I've accomplished so much. I can't believe my code is 80,000 characters long. Even though I still haven't achieved all of my MVP goals, I'm very happy with the result.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;And by the way, I changed my device (Windows 7 was better than 10...)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Final
&lt;/h2&gt;

&lt;p&gt;I learned a lot, made a ton of mistakes, corrected them, and didn't sleep a single night. I think I realized that AI is like a casino: you either hit the jackpot and get a fantastic app, or you waste all your limits, lol. I'm tired of writing this post...&lt;/p&gt;

</description>
      <category>python</category>
      <category>sideprojects</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Marching Cubes algorithm written in Rust</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Sat, 03 Jan 2026 13:48:34 +0000</pubDate>
      <link>https://forem.com/embernoglow/marching-cubes-algorithm-written-in-rust-473d</link>
      <guid>https://forem.com/embernoglow/marching-cubes-algorithm-written-in-rust-473d</guid>
      <description>&lt;h3&gt;
  
  
  Hello everyone 👋
&lt;/h3&gt;

&lt;p&gt;I am happy to present my new AI-generated work: &lt;strong&gt;Marching cubes&lt;/strong&gt; allow you to polygonize geometry created using a signed distance field!&lt;/p&gt;

&lt;p&gt;I created this for my project &lt;a href="https://github.com/EmberNoGlow/SDF-Model-Editor-Demo" rel="noopener noreferrer"&gt;SDF model editor&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;The code is distributed under the MIT license.&lt;/p&gt;




&lt;p&gt;For more information visit &lt;a href="https://github.com/EmberNoGlow/Rust-Marching-Cubes-Generator/" rel="noopener noreferrer"&gt;github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>algorithms</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Raymarching Mountains for Godot - addon that solves the problem of open worlds</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Tue, 30 Dec 2025 16:44:13 +0000</pubDate>
      <link>https://forem.com/embernoglow/raymarching-mountains-for-godot-addon-that-solves-the-problem-of-open-worlds-4doa</link>
      <guid>https://forem.com/embernoglow/raymarching-mountains-for-godot-addon-that-solves-the-problem-of-open-worlds-4doa</guid>
      <description>&lt;p&gt;A fast, powerful, and optimized plugin for creating procedural background mountains using RayMarching.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhfuyqc58t7kucbhfmgy.png" alt="Demo" width="800" height="449"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqmecqa9gf9cfe6jhyxsq.png" alt="Demo" width="800" height="449"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is it?
&lt;/h2&gt;

&lt;p&gt;This addon is designed to create open worlds and eliminate the ugly "world break" effect. It generates a procedural horizon to surround your play area, making your world feel infinite without the performance cost of generating actual geometry for distant terrain.&lt;/p&gt;

&lt;p&gt;It uses a &lt;strong&gt;Raymarching Shader&lt;/strong&gt; applied to a flipped box mesh (similar to a skybox) to render mountains efficiently.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Procedural Generation:&lt;/strong&gt; Uses noise textures to generate infinite variations.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Highly Optimized:&lt;/strong&gt; Renders on a single mesh (&lt;strong&gt;12 tris&lt;/strong&gt;) using shader magic. Runs at a &lt;strong&gt;stable 60 fps&lt;/strong&gt; on old videocard &lt;em&gt;AMD Radeon HD 8600/8700M&lt;/em&gt; (Integrated)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Seamless Blending:&lt;/strong&gt; Built-in fog gradient support to blend the mountains into your sky.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Customizable:&lt;/strong&gt; Full control over colors, scale, and fog depth.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📄 License
&lt;/h2&gt;

&lt;p&gt;This addon is distributed under the &lt;strong&gt;Creative Commons Zero (CC0)&lt;/strong&gt; license.&lt;/p&gt;




&lt;h2&gt;
  
  
  Are you ready to try?
&lt;/h2&gt;

&lt;p&gt;Full Github link : &lt;strong&gt;&lt;a href="https://github.com/EmberNoGlow/Raymarching-Mountains" rel="noopener noreferrer"&gt;EmberNoGlow/Raymarching-Mountains&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ❤️ Support
&lt;/h2&gt;

&lt;p&gt;If you find this plugin useful, please give it a star on GitHub!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/EmberNoGlow" rel="noopener noreferrer"&gt;EmberNoGlow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Dev.to:&lt;/strong&gt; &lt;a href="https://dev.to/embernoglow"&gt;embernoglow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Bluesky:&lt;/strong&gt; &lt;a href="https://bsky.app/profile/embernoglow.bsky.social" rel="noopener noreferrer"&gt;@embernoglow.bsky.social&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>godot</category>
      <category>shader</category>
      <category>tool</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Godot SceneBuilder: Supercharge Your 3D Scene Creation!</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Thu, 25 Dec 2025 18:24:40 +0000</pubDate>
      <link>https://forem.com/embernoglow/godot-scenebuilder-supercharge-your-3d-scene-creation-35ob</link>
      <guid>https://forem.com/embernoglow/godot-scenebuilder-supercharge-your-3d-scene-creation-35ob</guid>
      <description>&lt;p&gt;Hello 👋&lt;/p&gt;

&lt;p&gt;I’m excited to share &lt;strong&gt;Godot SceneBuilder&lt;/strong&gt; — a powerful addon for Godot 4 that revolutionizes how you work with 3D meshes. Whether you’re building vast environments or intricate structures, this tool will save you time and boost performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Does It Do?
&lt;/h3&gt;

&lt;p&gt;SceneBuilder lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Procedurally scatter meshes&lt;/strong&gt; in circles, grids, or custom patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create spirals&lt;/strong&gt; (perfect for staircases or organic structures) with adjustable height, turns, and radius growth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge instances&lt;/strong&gt; into a single &lt;code&gt;MeshInstance3D&lt;/code&gt; using &lt;code&gt;SurfaceTool&lt;/code&gt;, drastically reducing draw calls and improving performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extend functionality&lt;/strong&gt; with your own GDScript algorithms — no core modifications needed!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why You’ll Love It
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Editor-native&lt;/strong&gt;: Runs entirely within Godot Editor (&lt;code&gt;@tool&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart rotation&lt;/strong&gt;: Align instances to face the center or follow tangents using &lt;code&gt;atan2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible&lt;/strong&gt;: Override materials, tweak transformations, and create custom scatter patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance-focused&lt;/strong&gt;: Merging meshes means fewer draw calls — ideal for complex scenes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Get Started in 4 Steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download the repository.&lt;/li&gt;
&lt;li&gt;Copy &lt;code&gt;addons/scenebuilder&lt;/code&gt; into your project’s &lt;code&gt;res://&lt;/code&gt; directory.&lt;/li&gt;
&lt;li&gt;Enable the plugin in &lt;strong&gt;Project &amp;gt; Project Settings &amp;gt; Plugins&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Add a &lt;strong&gt;SceneBuild&lt;/strong&gt; node, assign a mesh, pick a pattern (e.g., &lt;code&gt;Circle&lt;/code&gt; or &lt;code&gt;Grid&lt;/code&gt;), adjust parameters, and click &lt;strong&gt;Build&lt;/strong&gt;!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Go Advanced: Custom Functions
&lt;/h3&gt;

&lt;p&gt;Want unique patterns? Edit &lt;code&gt;ScatterFunctions.gd&lt;/code&gt; to define your own logic. Pass arguments directly from the Inspector — supports floats, booleans, and strings. Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gdscript"&gt;&lt;code&gt;&lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;my_custom_shape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;distance_to_center&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;points&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="c1"&gt;# Your magic here&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;points&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then select &lt;code&gt;Custom&lt;/code&gt; in the editor, set your function name, and pass args like &lt;code&gt;true, 5.5, "hello"&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Visuals &amp;amp; Docs
&lt;/h3&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/EmberNoGlow/Godot-SceneBuilder" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; for screenshots and detailed configuration guides.&lt;/p&gt;

&lt;h3&gt;
  
  
  License &amp;amp; Support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: MIT (feel free to use and modify).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support&lt;/strong&gt;: Star the repo on GitHub to help others discover it!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me for more Godot tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/EmberNoGlow" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bsky.app/profile/embernoglow.bsky.social" rel="noopener noreferrer"&gt;bsky&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/embernoglow"&gt;dev.to&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy developing! 🚀  &lt;/p&gt;

</description>
      <category>godot</category>
      <category>addon</category>
      <category>gamedev</category>
      <category>3d</category>
    </item>
    <item>
      <title>SDF Model Editor Demo written in Python &amp; GLSL</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Wed, 17 Dec 2025 19:32:20 +0000</pubDate>
      <link>https://forem.com/embernoglow/3d-sdf-editor-prototype-in-python-and-glsl-3aj0</link>
      <guid>https://forem.com/embernoglow/3d-sdf-editor-prototype-in-python-and-glsl-3aj0</guid>
      <description>&lt;p&gt;SDF Model Editor Demo is a &lt;strong&gt;demonstration tool&lt;/strong&gt; for rendering and interacting with Signed Distance Functions (SDF) primitives.&lt;/p&gt;

&lt;p&gt;Built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Python&lt;/strong&gt; (for application logic)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;GLSL&lt;/strong&gt; (for shader programming)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Dear ImGui&lt;/strong&gt; (for the graphical user interface)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;GLFW&lt;/strong&gt; and &lt;strong&gt;PyOpenGL&lt;/strong&gt; (for window management and rendering context)&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💡 Project Status
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;⚠️ Work in Progress (WIP)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This tool is currently in early development and has limited functionality. Please refer to the &lt;strong&gt;Roadmap&lt;/strong&gt; section in &lt;a href="https://github.com/EmberNoGlow/SDF-Model-Editor-Demo" rel="noopener noreferrer"&gt;github&lt;/a&gt; for future plans and contributions. Your support for the project's development is highly appreciated!&lt;/p&gt;




&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Full-fledged ability to &lt;strong&gt;create 3d models&lt;/strong&gt;!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Free movement of the camera in 3d space&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real time rendering&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save/Load projects&lt;/strong&gt; (JSON format)&lt;/li&gt;
&lt;li&gt;A great foundation for &lt;strong&gt;development&lt;/strong&gt; - clean (relatively) code, but a bit cumbersome...&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🙏 Acknowledgements
&lt;/h3&gt;

&lt;p&gt;Developing this idea was significantly aided by modern AI tools, including GitHub Copilot and GPT chat.&lt;/p&gt;

&lt;p&gt;While the initial vision was perhaps more elaborate, I am satisfied with the functional result achieved despite the challenges encountered.&lt;/p&gt;




&lt;h3&gt;
  
  
  💞 Contributing
&lt;/h3&gt;

&lt;p&gt;We welcome community contributions! If you discover a bug, encounter an issue, or have an idea for an improvement, please feel free to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Open a new &lt;strong&gt;Issue&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;  Submit a &lt;strong&gt;Pull Request&lt;/strong&gt; with your proposed changes.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;🔗 &lt;strong&gt;Full Repository Link:&lt;/strong&gt; &lt;a href="https://github.com/EmberNoGlow/SDF-Model-Editor-Demo" rel="noopener noreferrer"&gt;EmberNoGlow/SDF-Model-Editor-Demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>python</category>
      <category>coding</category>
      <category>startup</category>
    </item>
    <item>
      <title>File Sharing: Tired of slow transfers? Here's the easiest and fastest utility to share files between devices.</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Fri, 12 Dec 2025 13:56:14 +0000</pubDate>
      <link>https://forem.com/embernoglow/file-sharing-tired-of-slow-transfers-heres-the-easiest-and-fastest-utility-to-share-files-1on2</link>
      <guid>https://forem.com/embernoglow/file-sharing-tired-of-slow-transfers-heres-the-easiest-and-fastest-utility-to-share-files-1on2</guid>
      <description>&lt;p&gt;File Share by EnG - &lt;strong&gt;The simplest, fastest, and most minimalistic file-sharing utility&lt;/strong&gt; Written in Python and Flask. Open-source, free, MIT license. Get on &lt;strong&gt;&lt;a href="https://github.com/EmberNoGlow/FileSharebyEnG" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌟 What is File Share?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;File Share by EnG&lt;/strong&gt; is an &lt;strong&gt;open-source&lt;/strong&gt;, &lt;strong&gt;peer-to-peer (P2P)&lt;/strong&gt; file-sharing tool designed for simplicity and speed. Built with Python and Flask, it allows you to transfer files &lt;strong&gt;instantly&lt;/strong&gt; between any devices on the same local network—no cloud, no accounts, just drag-and-drop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;p&gt;✅ &lt;strong&gt;Zero setup&lt;/strong&gt; – Run the executable and start sharing.&lt;br&gt;
✅ &lt;strong&gt;Cross-device&lt;/strong&gt; – Works on Windows, macOS, and Linux (via Python).&lt;br&gt;
✅ &lt;strong&gt;Lightweight&lt;/strong&gt; – Minimal codebase, no bloat.&lt;br&gt;
✅ &lt;strong&gt;Open-source&lt;/strong&gt; – Free to use, modify, and distribute.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 How to Use
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Option 1: Download Pre-Built Executable (Windows)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;&lt;a href="https://github.com/EmberNoGlow/FileSharebyEnG/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt;&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Download &lt;code&gt;FileSharebyEnG.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run the executable.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Option 2: Run from Source (Any Platform)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository or download the source code:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/EmberNoGlow/FileSharebyEnG.git
   &lt;span class="nb"&gt;cd &lt;/span&gt;fileshare
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install dependencies:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   pip &lt;span class="nb"&gt;install &lt;/span&gt;flask
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Run the script:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sharing Files
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;On the &lt;strong&gt;host device&lt;/strong&gt;, run File Share. Note the displayed IP address (e.g., &lt;code&gt;http://192.168.3.6:5000&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;receiving device&lt;/strong&gt;, open a browser and enter the host’s IP address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drag and drop&lt;/strong&gt; files into the browser &lt;strong&gt;or&lt;/strong&gt; place them in the &lt;code&gt;shared_files&lt;/code&gt; folder (created automatically).&lt;/li&gt;
&lt;li&gt;Download files from the browser on the receiving device.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note&lt;/strong&gt;: Both devices must be on the &lt;strong&gt;same local network&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔨 Contributing
&lt;/h2&gt;

&lt;p&gt;Found a bug? Want to add features? Contributions are welcome!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open an &lt;strong&gt;&lt;a href="https://github.com/EmberNoGlow/FileSharebyEnG/issues" rel="noopener noreferrer"&gt;Issue&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Submit a &lt;strong&gt;Pull Request&lt;/strong&gt; (PR).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💙 Support the Project
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Star&lt;/strong&gt; the repository to help others discover it.&lt;/li&gt;
&lt;li&gt;Share with friends or colleagues who need a simple file-sharing tool.&lt;/li&gt;
&lt;li&gt;Check out my other projects on &lt;a href="https://github.com/EmberNoGlow" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>flask</category>
      <category>python</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Stop Coding Before You Break It: The Hidden Productivity Skill</title>
      <dc:creator>EmberNoGlow</dc:creator>
      <pubDate>Tue, 09 Dec 2025 10:10:35 +0000</pubDate>
      <link>https://forem.com/embernoglow/stop-coding-before-you-break-it-the-hidden-productivity-skill-4g5a</link>
      <guid>https://forem.com/embernoglow/stop-coding-before-you-break-it-the-hidden-productivity-skill-4g5a</guid>
      <description>&lt;h2&gt;
  
  
  💫 The All-Nighter Trap
&lt;/h2&gt;

&lt;p&gt;Ever spent hours staring at the screen, unable to fix that one bug? You feel like if you just push &lt;em&gt;a little harder&lt;/em&gt;, the solution will appear.&lt;/p&gt;

&lt;p&gt;We often confuse &lt;strong&gt;continuous effort&lt;/strong&gt; with &lt;strong&gt;progress&lt;/strong&gt;. Pushing through exhaustion leads to cognitive fatigue and introduces new, sloppy bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 The Secret Superpower: Knowing When to Stop
&lt;/h2&gt;

&lt;p&gt;This is the true mark of a professional: &lt;strong&gt;Stopping at the right time is an art!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It seems counterintuitive, but stepping away dramatically increases your productivity and professionalism.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Stepping Away Works:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Incubation Power:&lt;/strong&gt; When you stop, your brain switches to "Diffuse Mode." It solves the problem in the background while you shower or sleep. Your best solution often appears &lt;em&gt;after&lt;/em&gt; you log off.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Context Reset:&lt;/strong&gt; Returning later gives you instant clarity. That obscure error that haunted you for hours often becomes obvious within five minutes of review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s not quitting; it’s strategic energy management. You are maximizing the value of the time you &lt;em&gt;do&lt;/em&gt; spend coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  👉 Your Turn: What's Your Stopping Rule?
&lt;/h2&gt;

&lt;p&gt;Mastering this takes self-awareness. I use the &lt;strong&gt;"Three-Strike Rule"&lt;/strong&gt;: If I try three different logical paths on a bug without success, I close the laptop and trust my morning self.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is &lt;em&gt;your&lt;/em&gt; personal trigger for stopping?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A time limit (e.g., 45 minutes stuck)?&lt;/li&gt;
&lt;li&gt;  A physical cue (e.g., eye strain)?&lt;/li&gt;
&lt;li&gt;  A strict ritual?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Share your secret weapon for managing burnout and boosting daily output! 👇&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>performance</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
