From d99c97fb248da8e18f747a4fbc4d46cd1dd7f2bf Mon Sep 17 00:00:00 2001 From: CNCKitchen Date: Sun, 5 Apr 2026 13:45:16 +0200 Subject: [PATCH] feat: update README and add GitHub links in header and license section --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++---- index.html | 4 ++++ js/i18n.js | 2 ++ style.css | 18 ++++++++++++++++++ 4 files changed, 68 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a4fd148..b6fa70b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ -# STL Texturizer +# BumpMesh by CNC Kitchen -**Live demo:** https://cnckitchen.github.io/stlTexturizer/ +**Live:** https://bumpmesh.com +**GitHub:** https://github.com/CNCKitchen/stlTexturizer A browser-based tool for applying surface displacement textures to 3D meshes — no installation required. @@ -9,8 +10,9 @@ Load an STL, OBJ, or 3MF file, pick a texture, tune the parameters, and export a ## Features ### Textures -- **18 built-in seamless textures** — basket, brick, bubble, carbon fiber, crystal, dots, grip surface, hexagons, knitting, knurling, leather, leather 2, noise, voronoi, weave (×3 variants), wood +- **24 built-in seamless textures** — basket, brick, bubble, carbon fiber, crystal, dots, grid, grip surface, hexagon, hexagons, isogrid, knitting, knurling, leather 2, noise, stripes (×2 variants), voronoi, weave (×3 variants), wood (×3 variants) - **Custom textures** — upload your own image as a displacement map +- **Texture smoothing** — configurable blur to soften the displacement map before applying ### Projection Modes - **Triplanar** (default) — blends three planar projections based on surface normals; best for complex shapes @@ -83,7 +85,9 @@ Load an STL, OBJ, or 3MF file, pick a texture, tune the parameters, and export a ``` index.html # Main entry point style.css # Styles (light / dark theme) -textures/ # Built-in JPG displacement map images (18 textures) +logo.png # Favicon & header logo +CNAME # Custom domain (bumpmesh.com) +textures/ # Built-in JPG/PNG displacement map images (24 textures) js/ main.js # App bootstrap & UI wiring viewer.js # Three.js scene / camera / controls @@ -99,6 +103,42 @@ js/ i18n.js # Translations (EN / DE) ``` +## Run Locally + +All processing runs entirely in the browser — no backend or build step is needed. You just need a local HTTP server because browsers block ES module imports and texture loading from `file://` URLs. + +```bash +# Clone the repository +git clone https://github.com/CNCKitchen/stlTexturizer.git +cd stlTexturizer +``` + +Then start any static file server from the project root. Pick whichever you have installed: + +**Python (3.x)** +```bash +python -m http.server 8000 +``` + +**Python (2.x)** +```bash +python -m SimpleHTTPServer 8000 +``` + +**Node.js (npx, no install needed)** +```bash +npx serve . +``` + +**PHP** +```bash +php -S localhost:8000 +``` + +Open http://localhost:8000 in your browser and you're ready to go. + +> **Tip:** Any static server will work — the app has no server-side dependencies. + ## Dependencies Loaded via CDN — no build step needed: diff --git a/index.html b/index.html index 7d9c8ad..0c2e32b 100644 --- a/index.html +++ b/index.html @@ -55,6 +55,9 @@ Dark Theme Light Theme + + + @@ -380,6 +383,7 @@
  • The author shall not be held liable for any damages, data loss, or issues arising from the use of this tool.
  • Want to license or embed this tool for your own business or website? Contact us at contact@cnckitchen.com.
  • Support this tool? Shop at CNCKitchen.STORE or donate on PayPal.
  • +
  • Source code available on GitHub.
  • diff --git a/js/i18n.js b/js/i18n.js index 5dd912e..00e9f83 100644 --- a/js/i18n.js +++ b/js/i18n.js @@ -153,6 +153,7 @@ export const TRANSLATIONS = { 'license.item5': 'No support is provided. The author is under no obligation to fix bugs, answer questions, or update this tool. That said, bug reports and feature requests are always welcome at texturizer@cnckitchen.com.', 'license.item6': 'The author shall not be held liable for any damages, data loss, or issues arising from the use of this tool.', 'license.item7': 'Want to license or embed this tool for your own business or website? Contact us at contact@cnckitchen.com.', + 'license.item8': 'Source code available on GitHub.', // Imprint & Privacy 'imprint.btn': 'Imprint & Privacy', @@ -337,6 +338,7 @@ export const TRANSLATIONS = { 'license.item5': 'Es wird kein Support geleistet. Der Autor ist nicht verpflichtet, Fehler zu beheben, Fragen zu beantworten oder das Tool zu aktualisieren. Fehlerberichte und Funktionswünsche sind aber jederzeit willkommen unter texturizer@cnckitchen.com.', 'license.item6': 'Der Autor haftet nicht f\u00fcr Sch\u00e4den, Datenverlust oder Probleme, die durch die Nutzung dieses Tools entstehen.', 'license.item7': 'Sie m\u00f6chten dieses Tool f\u00fcr Ihr eigenes Unternehmen oder Ihre Website lizenzieren oder einbinden? Kontaktieren Sie uns unter contact@cnckitchen.com.', + 'license.item8': 'Quellcode verf\u00fcgbar auf GitHub.', // Impressum & Datenschutz 'imprint.btn': 'Impressum & Datenschutz', diff --git a/style.css b/style.css index 308578d..7d874ab 100644 --- a/style.css +++ b/style.css @@ -103,6 +103,24 @@ [data-theme="light"] .theme-toggle .icon-moon { display: none; } [data-theme="light"] .theme-toggle .icon-sun { display: block; } +.github-link { + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + background: var(--surface2); + border: 1px solid var(--border); + border-radius: var(--radius); + color: var(--text-muted); + transition: background 0.15s, border-color 0.15s, color 0.15s; + flex-shrink: 0; +} +.github-link:hover { + border-color: var(--accent); + color: var(--accent); +} + html, body { height: 100%; font-family: 'Segoe UI', system-ui, sans-serif;