From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
AI Pipeline · Illustration to 3D Assets
2026
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
OVERVIEW
3D characters that look like they came off a page of my sketchbook. I trained a model to do it, proved the model was the wrong instrument, and found that the style was never a generation problem at all. What ships is an asset that carries the look anywhere it's opened — not a viewer trick that falls apart the moment someone downloads the file.
YEAR
2026
ROLE
Artist
Developer
UX/UI


























The Problem
My sketchbook has a look. Flat shapes, a palette that never exceeds six colours, a cream keyline sitting outside a contour that is never black, pencil construction left visible under the paint, and paper grain over all of it.
Every 3D version I generated came back as somebody else's work — shiny, plausible, lit like a video game. That isn't a tuning problem. Image-to-3D models are trained to produce believable physical objects, and a flat drawing is a refusal of physical plausibility. The style is the first thing they throw out, because throwing it out is the job.
What Didn't Work
The first version trained a LoRA on my sketchbook and asked it to hold the style through the whole pipeline. It couldn't, and taking it apart was more useful than the failure.
The adapter was rank 16, attention-only, UNet-only, with zero text-encoder weights — so the CLIP strength I had been carefully tuning was doing nothing at all. The base checkpoint was Juggernaut-XL, a photoreal model that pulls toward rendered surfaces on every sampler step. My own positive prompt said "stylized fortnite character." My negative prompt conditioned away noise and grain, which is to say my own medium. And at the end of it, Meshy's PBR pass re-skinned the result regardless of anything upstream.
Six mistakes, each individually reasonable, compounding into a pipeline that was arguing with itself. But fix all six and the ceiling still holds: style asked for early gets sanded off later.
The Solution
Stop asking the generator for style. Split the job: the generator makes form, I make surface.
The palette comes out of the sketchbook rather than out of my head — six colours sampled from one page, and critically, weighted by how much of the page each one actually occupies. Navy is 45% of that drawing. Salmon is 14%. An even split reads pink and wrong; the measured split reads like the page. The accents that identify the work are the ones covering the least canvas, which is exactly what naive palette extraction discards.
Every texel of the generated texture is then mapped through that ramp. Because the operation is per-texel and position-independent, it is safe in atlas space — no seams, no drift, no second inference to disagree with the first. Rotate the model a full turn and nothing moves, because nothing is being generated while you look at it.
The one thing that cannot bake is the keyline. A contour's position depends on where the camera is, so it stays as geometry — two inverted hulls with per-vertex width jitter, so the line breathes like a marker instead of a stroke setting.
Building The Patient
The knight was a prompt — someone else's character, useful for proving the passes work. THE PATIENT is mine: a blindfolded sorceress who cannot cast anything, with a smug rubber-hose mascot floating beside her doing all the actual magic. The credit is going the wrong way and she cannot see well enough to argue.
She was designed backwards from the conversion. Every one of those decisions is about what survives image-to-3D, made before the mesh existed rather than discovered afterwards.
Why It Matters
The style lives in the asset, not the viewer. Open the GLB in Blender, drop it in a game engine, hand it to someone else — it still looks like my work. That is the difference between a rendering trick and a finished thing.
And the palette is six hex values. Swap them and the same mesh belongs to a different body of work, which is the part that makes this a system rather than one drawing.
The Part I'll Admit
Reference-image conditioning beat the fine-tuned adapter at the job the adapter was trained for. One prompt, three reference images, no training, 42 seconds. I don't have a tidy lesson about that. I spent real time and money training something whose whole purpose was solved better by describing what I wanted and showing three pictures.
The LoRA still earns its place for inventing new characters in my style at volume. Just not for keeping style alive across a conversion — which was the one thing I built it for.
Palette Mapping
Every texel of the generated texture is remapped through the weighted ramp. The operation is per-texel and position-independent, so it is safe in atlas space — no seams, no drift, and no second inference to disagree with the first. This is where the style actually happens.
LIVE DEMO
Conversations
Four modes. Same agent. Pick one to see how the register shifts.
Glyph
The default register. Direct, observational, and slightly dry. Glyph knows your calendar, your projects, and what's still open. Short answers by default, longer only when asked.
“Calendar says 2pm. Decide what matters.”
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
AI Pipeline · Illustration to 3D Assets
2026
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
OVERVIEW
3D characters that look like they came off a page of my sketchbook. I trained a model to do it, proved the model was the wrong instrument, and found that the style was never a generation problem at all. What ships is an asset that carries the look anywhere it's opened — not a viewer trick that falls apart the moment someone downloads the file.
YEAR
2026
ROLE
Artist
Developer
UX/UI


























The Problem
My sketchbook has a look. Flat shapes, a palette that never exceeds six colours, a cream keyline sitting outside a contour that is never black, pencil construction left visible under the paint, and paper grain over all of it.
Every 3D version I generated came back as somebody else's work — shiny, plausible, lit like a video game. That isn't a tuning problem. Image-to-3D models are trained to produce believable physical objects, and a flat drawing is a refusal of physical plausibility. The style is the first thing they throw out, because throwing it out is the job.
What Didn't Work
The first version trained a LoRA on my sketchbook and asked it to hold the style through the whole pipeline. It couldn't, and taking it apart was more useful than the failure.
The adapter was rank 16, attention-only, UNet-only, with zero text-encoder weights — so the CLIP strength I had been carefully tuning was doing nothing at all. The base checkpoint was Juggernaut-XL, a photoreal model that pulls toward rendered surfaces on every sampler step. My own positive prompt said "stylized fortnite character." My negative prompt conditioned away noise and grain, which is to say my own medium. And at the end of it, Meshy's PBR pass re-skinned the result regardless of anything upstream.
Six mistakes, each individually reasonable, compounding into a pipeline that was arguing with itself. But fix all six and the ceiling still holds: style asked for early gets sanded off later.
The Solution
Stop asking the generator for style. Split the job: the generator makes form, I make surface.
The palette comes out of the sketchbook rather than out of my head — six colours sampled from one page, and critically, weighted by how much of the page each one actually occupies. Navy is 45% of that drawing. Salmon is 14%. An even split reads pink and wrong; the measured split reads like the page. The accents that identify the work are the ones covering the least canvas, which is exactly what naive palette extraction discards.
Every texel of the generated texture is then mapped through that ramp. Because the operation is per-texel and position-independent, it is safe in atlas space — no seams, no drift, no second inference to disagree with the first. Rotate the model a full turn and nothing moves, because nothing is being generated while you look at it.
The one thing that cannot bake is the keyline. A contour's position depends on where the camera is, so it stays as geometry — two inverted hulls with per-vertex width jitter, so the line breathes like a marker instead of a stroke setting.
Building The Patient
The knight was a prompt — someone else's character, useful for proving the passes work. THE PATIENT is mine: a blindfolded sorceress who cannot cast anything, with a smug rubber-hose mascot floating beside her doing all the actual magic. The credit is going the wrong way and she cannot see well enough to argue.
She was designed backwards from the conversion. Every one of those decisions is about what survives image-to-3D, made before the mesh existed rather than discovered afterwards.
Why It Matters
The style lives in the asset, not the viewer. Open the GLB in Blender, drop it in a game engine, hand it to someone else — it still looks like my work. That is the difference between a rendering trick and a finished thing.
And the palette is six hex values. Swap them and the same mesh belongs to a different body of work, which is the part that makes this a system rather than one drawing.
The Part I'll Admit
Reference-image conditioning beat the fine-tuned adapter at the job the adapter was trained for. One prompt, three reference images, no training, 42 seconds. I don't have a tidy lesson about that. I spent real time and money training something whose whole purpose was solved better by describing what I wanted and showing three pictures.
The LoRA still earns its place for inventing new characters in my style at volume. Just not for keeping style alive across a conversion — which was the one thing I built it for.
Palette Mapping
Every texel of the generated texture is remapped through the weighted ramp. The operation is per-texel and position-independent, so it is safe in atlas space — no seams, no drift, and no second inference to disagree with the first. This is where the style actually happens.
LIVE DEMO
Conversations
Four modes. Same agent. Pick one to see how the register shifts.
Glyph
The default register. Direct, observational, and slightly dry. Glyph knows your calendar, your projects, and what's still open. Short answers by default, longer only when asked.
“Calendar says 2pm. Decide what matters.”
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
AI Pipeline · Illustration to 3D Assets
2026
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
From Sketch to 3D
AI Pipeline · Illustration to 3D Assets
OVERVIEW
3D characters that look like they came off a page of my sketchbook. I trained a model to do it, proved the model was the wrong instrument, and found that the style was never a generation problem at all. What ships is an asset that carries the look anywhere it's opened — not a viewer trick that falls apart the moment someone downloads the file.
YEAR
2026
ROLE
Artist
Developer
UX/UI


























The Problem
My sketchbook has a look. Flat shapes, a palette that never exceeds six colours, a cream keyline sitting outside a contour that is never black, pencil construction left visible under the paint, and paper grain over all of it.
Every 3D version I generated came back as somebody else's work — shiny, plausible, lit like a video game. That isn't a tuning problem. Image-to-3D models are trained to produce believable physical objects, and a flat drawing is a refusal of physical plausibility. The style is the first thing they throw out, because throwing it out is the job.
What Didn't Work
The first version trained a LoRA on my sketchbook and asked it to hold the style through the whole pipeline. It couldn't, and taking it apart was more useful than the failure.
The adapter was rank 16, attention-only, UNet-only, with zero text-encoder weights — so the CLIP strength I had been carefully tuning was doing nothing at all. The base checkpoint was Juggernaut-XL, a photoreal model that pulls toward rendered surfaces on every sampler step. My own positive prompt said "stylized fortnite character." My negative prompt conditioned away noise and grain, which is to say my own medium. And at the end of it, Meshy's PBR pass re-skinned the result regardless of anything upstream.
Six mistakes, each individually reasonable, compounding into a pipeline that was arguing with itself. But fix all six and the ceiling still holds: style asked for early gets sanded off later.
The Solution
Stop asking the generator for style. Split the job: the generator makes form, I make surface.
The palette comes out of the sketchbook rather than out of my head — six colours sampled from one page, and critically, weighted by how much of the page each one actually occupies. Navy is 45% of that drawing. Salmon is 14%. An even split reads pink and wrong; the measured split reads like the page. The accents that identify the work are the ones covering the least canvas, which is exactly what naive palette extraction discards.
Every texel of the generated texture is then mapped through that ramp. Because the operation is per-texel and position-independent, it is safe in atlas space — no seams, no drift, no second inference to disagree with the first. Rotate the model a full turn and nothing moves, because nothing is being generated while you look at it.
The one thing that cannot bake is the keyline. A contour's position depends on where the camera is, so it stays as geometry — two inverted hulls with per-vertex width jitter, so the line breathes like a marker instead of a stroke setting.
Building The Patient
The knight was a prompt — someone else's character, useful for proving the passes work. THE PATIENT is mine: a blindfolded sorceress who cannot cast anything, with a smug rubber-hose mascot floating beside her doing all the actual magic. The credit is going the wrong way and she cannot see well enough to argue.
She was designed backwards from the conversion. Every one of those decisions is about what survives image-to-3D, made before the mesh existed rather than discovered afterwards.
Why It Matters
The style lives in the asset, not the viewer. Open the GLB in Blender, drop it in a game engine, hand it to someone else — it still looks like my work. That is the difference between a rendering trick and a finished thing.
And the palette is six hex values. Swap them and the same mesh belongs to a different body of work, which is the part that makes this a system rather than one drawing.
The Part I'll Admit
Reference-image conditioning beat the fine-tuned adapter at the job the adapter was trained for. One prompt, three reference images, no training, 42 seconds. I don't have a tidy lesson about that. I spent real time and money training something whose whole purpose was solved better by describing what I wanted and showing three pictures.
The LoRA still earns its place for inventing new characters in my style at volume. Just not for keeping style alive across a conversion — which was the one thing I built it for.
Palette Mapping
Every texel of the generated texture is remapped through the weighted ramp. The operation is per-texel and position-independent, so it is safe in atlas space — no seams, no drift, and no second inference to disagree with the first. This is where the style actually happens.
LIVE DEMO
Conversations
Four modes. Same agent. Pick one to see how the register shifts.
Glyph
The default register. Direct, observational, and slightly dry. Glyph knows your calendar, your projects, and what's still open. Short answers by default, longer only when asked.
“Calendar says 2pm. Decide what matters.”