<?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>DEV Community: LEGEND'S DaD</title>
    <description>The latest articles on DEV Community by LEGEND'S DaD (@legedsdad).</description>
    <link>https://dev.to/legedsdad</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3743131%2Fd064db51-be98-4731-9dde-736aba4e8b66.png</url>
      <title>DEV Community: LEGEND'S DaD</title>
      <link>https://dev.to/legedsdad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/legedsdad"/>
    <language>en</language>
    <item>
      <title>GitHub Dashboard made by me .</title>
      <dc:creator>LEGEND'S DaD</dc:creator>
      <pubDate>Sun, 28 Jun 2026 13:27:20 +0000</pubDate>
      <link>https://dev.to/legedsdad/github-dashboard-made-by-me--3mp3</link>
      <guid>https://dev.to/legedsdad/github-dashboard-made-by-me--3mp3</guid>
      <description>&lt;h2&gt;
  
  
  GitHub Dashboard
&lt;/h2&gt;

&lt;p&gt;Project Link - &lt;a href="https://github.com/LegedsDaD/Github-Dashboard" rel="noopener noreferrer"&gt;https://github.com/LegedsDaD/Github-Dashboard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A modern, customizable GitHub profile dashboard generator built with &lt;strong&gt;React&lt;/strong&gt;, &lt;strong&gt;TypeScript&lt;/strong&gt;, &lt;strong&gt;Vite&lt;/strong&gt;, &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, and &lt;strong&gt;Vercel Serverless Functions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Generate beautiful SVG GitHub dashboards displaying your profile information, repository statistics, programming languages, and top repositories. Embed the generated dashboard directly into your GitHub profile README or any Markdown-supported website.&lt;/p&gt;




&lt;h2&gt;
  
  
  Status
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build&lt;/td&gt;
&lt;td&gt;Passing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Version&lt;/td&gt;
&lt;td&gt;v1.0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github-dashboard-sooty.vercel.app/" rel="noopener noreferrer"&gt;https://github-dashboard-sooty.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github-dashboard-sooty.vercel.app/api/dashboard?username=octocat" rel="noopener noreferrer"&gt;https://github-dashboard-sooty.vercel.app/api/dashboard?username=octocat&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Option 1 (Recommended)
&lt;/h3&gt;

&lt;p&gt;Visit the website and generate your dashboard without writing any URLs manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github-dashboard-sooty.vercel.app/" rel="noopener noreferrer"&gt;https://github-dashboard-sooty.vercel.app/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The generator lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter your GitHub username&lt;/li&gt;
&lt;li&gt;Choose from multiple themes&lt;/li&gt;
&lt;li&gt;Enable or disable dashboard sections&lt;/li&gt;
&lt;li&gt;Preview your dashboard instantly&lt;/li&gt;
&lt;li&gt;Copy the generated Markdown with one click&lt;/li&gt;
&lt;li&gt;Copy the SVG URL&lt;/li&gt;
&lt;li&gt;Customize your dashboard without editing query parameters manually&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the easiest way to create your dashboard.&lt;/p&gt;




&lt;h3&gt;
  
  
  Option 2 (Manual)
&lt;/h3&gt;

&lt;p&gt;Embed the dashboard directly in your README.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;GitHub Dashboard&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github-dashboard-sooty.vercel.app/api/dashboard?username=YOUR_USERNAME&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using a theme:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;GitHub Dashboard&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github-dashboard-sooty.vercel.app/api/dashboard?username=YOUR_USERNAME&amp;amp;theme=midnight&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;GitHub Dashboard&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github-dashboard-sooty.vercel.app/api/dashboard?username=torvalds&amp;amp;theme=forest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;ul&gt;
&lt;li&gt;GitHub Profile Card&lt;/li&gt;
&lt;li&gt;Repository Statistics&lt;/li&gt;
&lt;li&gt;Additional GitHub Metrics&lt;/li&gt;
&lt;li&gt;Top Programming Languages&lt;/li&gt;
&lt;li&gt;Most Starred Repositories&lt;/li&gt;
&lt;li&gt;Multiple Built-in Themes&lt;/li&gt;
&lt;li&gt;Responsive Dashboard Generator&lt;/li&gt;
&lt;li&gt;SVG Generation API&lt;/li&gt;
&lt;li&gt;GitHub README Ready&lt;/li&gt;
&lt;li&gt;Copy Markdown Support&lt;/li&gt;
&lt;li&gt;Live Preview&lt;/li&gt;
&lt;li&gt;Section Visibility Controls&lt;/li&gt;
&lt;li&gt;Highly Customizable&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Theme Gallery
&lt;/h2&gt;

&lt;p&gt;Below are live examples of every available theme.&lt;/p&gt;

&lt;h3&gt;
  
  
  Midnight
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dmidnight" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dmidnight" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Ocean
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Docean" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Docean" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Sunset
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dsunset" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dsunset" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Forest
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dforest" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dforest" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Dracula
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Ddracula" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Ddracula" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Nord
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dnord" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dnord" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Rosé Pine
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dros%25C3%25A9" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dros%25C3%25A9" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Catppuccin
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dcatppuccin" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dcatppuccin" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  GitHub
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dgithub" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dgithub" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Mono
&lt;/h3&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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dmono" 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%2Fgithub-dashboard-sooty.vercel.app%2Fapi%2Fdashboard%3Fusername%3DLegedsDaD%26theme%3Dmono" alt="GitHub Dashboard" width="1200" height="760"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  API
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Endpoint
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/api/dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parameters
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;username&lt;/td&gt;
&lt;td&gt;GitHub username&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;theme&lt;/td&gt;
&lt;td&gt;Dashboard theme&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sections&lt;/td&gt;
&lt;td&gt;Comma-separated list of sections&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/api/dashboard?username=octocat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With theme:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/api/dashboard?username=octocat&amp;amp;theme=forest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With custom sections:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/api/dashboard?username=octocat&amp;amp;sections=profile,stats,languages,repositories
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Available Sections
&lt;/h2&gt;

&lt;p&gt;You can choose which sections appear on your dashboard.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Profile&lt;/li&gt;
&lt;li&gt;Statistics&lt;/li&gt;
&lt;li&gt;Additional Statistics&lt;/li&gt;
&lt;li&gt;Languages&lt;/li&gt;
&lt;li&gt;Top Repositories&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sections=profile,stats,languages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a section is omitted, it will not be displayed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Available Themes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Midnight&lt;/li&gt;
&lt;li&gt;Ocean&lt;/li&gt;
&lt;li&gt;Sunset&lt;/li&gt;
&lt;li&gt;Forest&lt;/li&gt;
&lt;li&gt;Dracula&lt;/li&gt;
&lt;li&gt;Nord&lt;/li&gt;
&lt;li&gt;Rosé Pine&lt;/li&gt;
&lt;li&gt;Catppuccin&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Mono&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;api/
    dashboard.js

src/
    App.tsx
    main.tsx
    config.ts
    themes.ts
    utils/

public/

package.json
vite.config.ts
vercel.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Development
&lt;/h2&gt;

&lt;p&gt;Clone the repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/YOUR_USERNAME/Github-Dashboard.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install dependencies.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Start the development server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Build the project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Preview the production build.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run preview
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SVG Dashboard Generator&lt;/td&gt;
&lt;td&gt;Complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard Builder&lt;/td&gt;
&lt;td&gt;Complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Theme Support&lt;/td&gt;
&lt;td&gt;Complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Section Toggle&lt;/td&gt;
&lt;td&gt;Complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub API Integration&lt;/td&gt;
&lt;td&gt;Complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown Generator&lt;/td&gt;
&lt;td&gt;Complete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;More Themes&lt;/td&gt;
&lt;td&gt;Planned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard Templates&lt;/td&gt;
&lt;td&gt;Planned&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;p&gt;Contributions are welcome.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the repository.&lt;/li&gt;
&lt;li&gt;Create a feature branch.&lt;/li&gt;
&lt;li&gt;Commit your changes.&lt;/li&gt;
&lt;li&gt;Push the branch.&lt;/li&gt;
&lt;li&gt;Open a Pull Request.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  More Themes
&lt;/h3&gt;

&lt;p&gt;Want your theme to get added ?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the repository.&lt;/li&gt;
&lt;li&gt;Add your theme to src\themes.ts.&lt;/li&gt;
&lt;li&gt;Open a Pull Request.&lt;/li&gt;
&lt;li&gt;Your theme will be added !&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;This project is licensed under the MIT License.&lt;/p&gt;




&lt;h2&gt;
  
  
  Made with love by &lt;a class="mentioned-user" href="https://dev.to/legedsdad"&gt;@legedsdad&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>dashboard</category>
    </item>
    <item>
      <title>🚀 Check out my CoderLegion profile &amp; latest post!</title>
      <dc:creator>LEGEND'S DaD</dc:creator>
      <pubDate>Mon, 04 May 2026 16:55:33 +0000</pubDate>
      <link>https://dev.to/legedsdad/check-out-my-coderlegion-profile-latest-post-4e0d</link>
      <guid>https://dev.to/legedsdad/check-out-my-coderlegion-profile-latest-post-4e0d</guid>
      <description>&lt;p&gt;🚀 Check out my CoderLegion profile &amp;amp; latest post!&lt;/p&gt;

&lt;p&gt;🏆 Points: 2.6k | 🎱 Badges: 55 | 👥 Followers: 7 | 📄 Posts: 23&lt;/p&gt;

&lt;p&gt;Latest post: "The Importance of Collaboration for Developers"&lt;br&gt;
Read it here: &lt;a href="https://coderlegion.com/16671/the-importance-of-collaboration-for-developers" rel="noopener noreferrer"&gt;https://coderlegion.com/16671/the-importance-of-collaboration-for-developers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;View my full profile: &lt;a href="https://coderlegion.com/user/LegendsDaD" rel="noopener noreferrer"&gt;https://coderlegion.com/user/LegendsDaD&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TrueGraphics</title>
      <dc:creator>LEGEND'S DaD</dc:creator>
      <pubDate>Sun, 15 Mar 2026 09:06:37 +0000</pubDate>
      <link>https://dev.to/legedsdad/truegraphics-5f6b</link>
      <guid>https://dev.to/legedsdad/truegraphics-5f6b</guid>
      <description>&lt;h1&gt;
  
  
  TrueGraphics
&lt;/h1&gt;

&lt;p&gt;Github Repo Link - &lt;a href="https://github.com/LegedsDaD/TrueGraphics" rel="noopener noreferrer"&gt;https://github.com/LegedsDaD/TrueGraphics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TrueGraphics is a small Windows-only GUI experiment: a C++ core (Win32 + GDI) with Python bindings built using &lt;code&gt;pybind11&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Windows-only Win32 window + message loop&lt;/li&gt;
&lt;li&gt;Lightweight GDI renderer (double-buffered)&lt;/li&gt;
&lt;li&gt;Python-first authoring model (&lt;code&gt;@app.window&lt;/code&gt; builder function)&lt;/li&gt;
&lt;li&gt;Nested UI via container context managers (&lt;code&gt;with tg.Row(): ...&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Basic layouts: &lt;code&gt;Row&lt;/code&gt;, &lt;code&gt;Column&lt;/code&gt;, &lt;code&gt;Grid&lt;/code&gt;, &lt;code&gt;Absolute&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Basic styling setters on widgets (colors, radius, borders, padding/margin)&lt;/li&gt;
&lt;li&gt;Canvas drawing API (&lt;code&gt;draw_line/rect/circle/text&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Image widget (&lt;code&gt;tg.Image("path")&lt;/code&gt;) via GDI+&lt;/li&gt;
&lt;li&gt;Animations (&lt;code&gt;widget.animate(...)&lt;/code&gt;), timers (&lt;code&gt;app.set_timeout/set_interval&lt;/code&gt;), and background tasks (&lt;code&gt;app.run_async&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Scrolling: &lt;code&gt;tg.ScrollView()&lt;/code&gt; + mouse wheel&lt;/li&gt;
&lt;li&gt;Multi-window apps via &lt;code&gt;app.add_window(...)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;System tray icon via &lt;code&gt;app.enable_tray(...)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Resources: &lt;code&gt;tg.add_resource_path(...)&lt;/code&gt;, &lt;code&gt;tg.resolve_resource(...)&lt;/code&gt;, &lt;code&gt;tg.load_font(...)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Widgets: &lt;code&gt;Button&lt;/code&gt;, &lt;code&gt;Label&lt;/code&gt;, &lt;code&gt;TextBox&lt;/code&gt;, &lt;code&gt;PasswordBox&lt;/code&gt;, &lt;code&gt;TextArea&lt;/code&gt;, &lt;code&gt;Checkbox&lt;/code&gt;, &lt;code&gt;RadioButton&lt;/code&gt;, &lt;code&gt;Slider&lt;/code&gt;, &lt;code&gt;ProgressBar&lt;/code&gt;, &lt;code&gt;Dropdown&lt;/code&gt;, &lt;code&gt;Tabs&lt;/code&gt;, &lt;code&gt;ListView&lt;/code&gt;, &lt;code&gt;Table&lt;/code&gt;, &lt;code&gt;TreeView&lt;/code&gt;, &lt;code&gt;Container&lt;/code&gt;, &lt;code&gt;ScrollView&lt;/code&gt;, &lt;code&gt;Canvas&lt;/code&gt;, &lt;code&gt;Image&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;State: &lt;code&gt;StateInt&lt;/code&gt;, &lt;code&gt;StateFloat&lt;/code&gt;, &lt;code&gt;StateBool&lt;/code&gt;, &lt;code&gt;StateString&lt;/code&gt; (all with &lt;code&gt;subscribe(...)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Buildable with &lt;code&gt;pip install .&lt;/code&gt; (requires a C++ toolchain)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&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;truegraphics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  See &lt;a href="https://github.com/LegedsDaD/TrueGraphics/blob/main/MANUAL.md" rel="noopener noreferrer"&gt;Manual&lt;/a&gt; to get more information about , how to use .
&lt;/h2&gt;

&lt;p&gt;Requirements (Windows):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.9+&lt;/li&gt;
&lt;li&gt;CMake 3.20+&lt;/li&gt;
&lt;li&gt;A C++ toolchain: MSVC (Visual Studio Build Tools) or MinGW-w64 (MSYS2)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  If downloading using &lt;code&gt;pip install .&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;MinGW note:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MinGW builds work, but image support requires &lt;code&gt;gdiplus&lt;/code&gt; (linked automatically via CMake when using a toolchain that provides it).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example Usage
&lt;/h2&gt;

&lt;p&gt;Minimal app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;btn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello World&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_background&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;#3A7AFE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_text_color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;#FFFFFF&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Layout example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Row / Grid Demo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Row&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_gap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_align&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Align&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Cancel&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_gap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;TextBox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Type here...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Checkbox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enable feature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;checked&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Counter app (manual UI update via &lt;code&gt;StateInt.subscribe&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;counter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;StateInt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update_label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Count: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;subscribe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;update_label&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Increment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_click&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Count: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Canvas example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;canvas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Canvas&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;520&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;draw_line&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;240&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;#3A7AFE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;draw_rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;160&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;#22C55E&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;draw_circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;#F97316&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;draw_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;260&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello Canvas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;#E5E7EB&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Image example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Image Demo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;assets/logo.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;320&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;180&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Multi-window example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Main window&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Main&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;second&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Second window&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_window&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Second&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;420&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;220&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;System tray example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;truegraphics&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enable_tray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;assets/app.ico&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TrueGraphics&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_click&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;message_box&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Tray clicked&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Tray&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="nd"&gt;@app.window&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Running (see tray icon)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Showcase Example
&lt;/h2&gt;

&lt;p&gt;Run the full showcase (widgets, layouts, canvas, events, async, drag-drop, multi-window, tray):&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Current Limitations (important)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Windows only (Win32 + GDI).&lt;/li&gt;
&lt;li&gt;Rendering is GDI-based (no GPU backend yet).&lt;/li&gt;
&lt;li&gt;Text rendering/editing is basic (no IME, no word-wrapping; caret/selection are approximate).&lt;/li&gt;
&lt;li&gt;Clipboard is text-only for now (CF_TEXT).&lt;/li&gt;
&lt;li&gt;Drag-and-drop supports file drops (WM_DROPFILES) only.&lt;/li&gt;
&lt;li&gt;Resource management is intentionally small: search paths + font file loading.&lt;/li&gt;
&lt;li&gt;System tray support is minimal (one tray icon per window; basic right-click menu).&lt;/li&gt;
&lt;li&gt;Not all “standard toolkit widgets” exist yet (this is still early-stage).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Known Gaps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No IME / complex text shaping.&lt;/li&gt;
&lt;li&gt;No layout-driven text measurement or wrapping.&lt;/li&gt;
&lt;li&gt;No accessibility and no cross-platform backend.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;engine/include/truegraphics&lt;/code&gt;: public engine headers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;engine/src&lt;/code&gt;: engine implementation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bindings/module.cpp&lt;/code&gt;: pybind11 module&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;python/truegraphics&lt;/code&gt;: Python package surface&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;examples&lt;/code&gt;: runnable examples&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;p&gt;This version targets Windows and uses an internal Win32-backed event loop with an engine-side scene/widget model. Rendering is implemented as a lightweight internal renderer abstraction that currently uses GDI-based drawing while preserving the C++ engine architecture for future GPU backend expansion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Help TrueGraphics to get compatible with MacOS and Linux .
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Thank You for taking time to see the project .
&lt;/h2&gt;

</description>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ThreeDimensions – Hybrid C++/Python 3D Modeling Library with Modifier Stack</title>
      <dc:creator>LEGEND'S DaD</dc:creator>
      <pubDate>Tue, 03 Mar 2026 14:04:35 +0000</pubDate>
      <link>https://dev.to/legedsdad/threedimensions-hybrid-cpython-3d-modeling-library-with-modifier-stack-4mj9</link>
      <guid>https://dev.to/legedsdad/threedimensions-hybrid-cpython-3d-modeling-library-with-modifier-stack-4mj9</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;I’ve been working on a project called ThreeDimensions, a hybrid C++20/Python 3D modeling library designed to provide programmable mesh modeling tools similar to traditional 3D software workflows, but exposed entirely as a Python SDK.&lt;/p&gt;

&lt;p&gt;The core geometry engine is written in C++20 for performance, and it is wrapped with a Python API for scripting and tool development.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/LegendsDaD/ThreeDimensions" rel="noopener noreferrer"&gt;https://github.com/LegendsDaD/ThreeDimensions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PyPI: &lt;a href="https://pypi.org/project/threedimensions/" rel="noopener noreferrer"&gt;https://pypi.org/project/threedimensions/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What My Project Does
&lt;/h2&gt;

&lt;p&gt;ThreeDimensions provides:&lt;/p&gt;

&lt;p&gt;• A mesh kernel supporting N-gons and large meshes&lt;br&gt;
• Primitive generation (cube, sphere, cylinder, cone, torus, plane)&lt;br&gt;
• Edit operations (extrude, bevel, inset, vertex/edge/face editing)&lt;br&gt;
• Boolean operations&lt;br&gt;
• Subdivision surface modifier&lt;br&gt;
• Decimate and remesh tools&lt;br&gt;
• Non-destructive modifier stack (mirror, array, subdivision, boolean)&lt;br&gt;
• Hierarchical scene graph system&lt;br&gt;
• Object instancing and collections&lt;br&gt;
• OBJ and STL export&lt;/p&gt;

&lt;p&gt;If a C++ compiler is not available during installation, it falls back to a pure Python implementation automatically.&lt;/p&gt;

&lt;p&gt;Minimal example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import threedimensions as td

bat = td.Mesh.create_cylinder(radius=0.15, height=1.0)
bat.save("bat.obj")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Target Audience
&lt;/h2&gt;

&lt;p&gt;This project is primarily intended for:&lt;/p&gt;

&lt;p&gt;Developers building procedural modeling tools&lt;/p&gt;

&lt;p&gt;Engineers needing programmatic mesh generation&lt;/p&gt;

&lt;p&gt;Educational use (learning mesh topology and geometry systems)&lt;/p&gt;

&lt;p&gt;Developers who want Blender-style modeling logic in code&lt;/p&gt;

&lt;p&gt;It is currently more suitable for experimentation and development rather than full production pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparison
&lt;/h2&gt;

&lt;p&gt;Unlike full 3D applications such as Blender, ThreeDimensions is not a GUI-based modeling tool. It is a programmable SDK.&lt;/p&gt;

&lt;p&gt;Compared to lightweight mesh libraries in Python, this project focuses more on:&lt;/p&gt;

&lt;p&gt;Non-destructive workflows via a modifier stack&lt;/p&gt;

&lt;p&gt;Scene graph structure&lt;/p&gt;

&lt;p&gt;Hybrid C++ core for performance&lt;/p&gt;

&lt;p&gt;A modeling-tool-oriented API rather than just mesh data structures&lt;/p&gt;

&lt;p&gt;I would appreciate feedback on:&lt;/p&gt;

&lt;p&gt;API design clarity&lt;/p&gt;

&lt;p&gt;Modifier system architecture&lt;/p&gt;

&lt;p&gt;Mesh kernel design decisions&lt;/p&gt;

&lt;p&gt;Performance considerations&lt;/p&gt;

&lt;p&gt;Missing core modeling tools&lt;/p&gt;

&lt;p&gt;Thanks for taking the time to read.&lt;/p&gt;

</description>
      <category>threedimensions</category>
    </item>
    <item>
      <title>CalCulus</title>
      <dc:creator>LEGEND'S DaD</dc:creator>
      <pubDate>Sun, 01 Feb 2026 19:55:30 +0000</pubDate>
      <link>https://dev.to/legedsdad/calculus-jn8</link>
      <guid>https://dev.to/legedsdad/calculus-jn8</guid>
      <description>&lt;p&gt;Visit &lt;a href="https://github.com/LegedsDaD/CalCulus" rel="noopener noreferrer"&gt;https://github.com/LegedsDaD/CalCulus&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;See project details and comment me. I need collaborators for this project &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
