Noor Haddad

3D artist and technical modeller · Tulsa, OK · Taking asset work from the middle of next month.

Ask for the wireframe.

A 3D artist in Tulsa. A beauty render is the easiest thing in this trade to fake and the hardest thing to use — it can sit on top of a mesh nobody can rig, unwrap or ship. These are the seven checks worth demanding before you accept any 3D asset, including from me.

Quads, loops where it bends
Triangles and n-gons, evenly spread
The same panel. Left: four-sided faces, denser where the form changes. Right: the same silhouette, triangulated evenly, with a fan through the part that has to bend. Both render identically. Only one of them can be rigged.

Before you accept any 3D asset

7 checks, and none of them need you to own 3D software.

  1. Check 01

    Quad topology, and edge loops where it bends

    The mesh is built from four-sided faces that follow the form, with denser loops at anything that has to deform or catch a highlight.

    Without it: A triangulated or n-gon mesh cannot be rigged without pinching, and subdividing it produces artefacts that look like dents. Fixing this after texturing means redoing the texturing.

    How to check it in thirty seconds

    Ask for a wireframe screenshot of one shot, from the front. You are looking for four-sided faces and for the density to sit where the shape changes, not spread evenly across a flat panel. You do not need to know 3D to see whether a wireframe is orderly or a mess.

    Every asset here passes
  2. Check 02

    Real-world scale, in the units of the target

    A one-metre crate is one metre in the file, in the unit system the engine or renderer expects.

    Without it: Import at 100× or 0.01×, and every physics, lighting and camera value downstream is wrong. Rescaling on import is not a fix — it moves the problem into every scene the asset appears in.

    How to check it in thirty seconds

    Ask for the asset's bounding-box dimensions in millimetres and compare them with the real object. Thirty seconds, one email, and it catches the single most common integration failure there is.

    Every asset here passes
  3. Check 03

    Pivot at the origin, Y or Z up as agreed

    The object sits at 0,0,0 with a sensible pivot — the base of a crate, the hinge of a door — and its up-axis matches the target application.

    Without it: An asset with its pivot forty metres away rotates in an arc instead of spinning. An axis mismatch lands every prop on its side, and "just rotate it" bakes a correction into every instance forever.

    How to check it in thirty seconds

    Ask where the pivot is and which axis is up. If the answer is "wherever it ended up", that is the answer.

    Every asset here passes
  4. Check 04

    UVs unwrapped, with a stated texel density

    The surface is laid out flat without overlaps, at a consistent number of texture pixels per real-world centimetre across the whole asset.

    Without it: Inconsistent density means one panel is crisp and the one next to it is mush, in the same shot. Overlapping UVs make lightmap baking impossible, which is discovered at the worst possible moment.

    How to check it in thirty seconds

    Ask for a UV layout screenshot and the texel density figure. A layout that fills the square without overlaps and a number like "10.24 px/cm" is the answer you want; "it's unwrapped" is not.

    Every asset here passes
  5. Check 05

    Naming and hierarchy a stranger can read

    Objects, materials and textures are named for what they are, and the hierarchy groups things the way somebody would want to move them.

    Without it: A scene of Cube.001 through Cube.147 is technically a delivery and practically a puzzle. It costs a day of somebody else's time and it is the cheapest of all these problems to have avoided.

    How to check it in thirty seconds

    Ask for a screenshot of the outliner. You do not need to understand the names — you need them to look like words.

    Every asset here passes
  6. Check 06

    A triangle count against a stated target

    The count is quoted for a named platform, not offered as a virtue in the abstract.

    Without it: "Low poly" without a target is meaningless. The same asset is extravagant on a phone and starved in a film close-up, and finding out which after the fact means rebuilding rather than adjusting.

    How to check it in thirty seconds

    Ask for the triangle count and what target it was built for. If the second half of that answer does not exist, neither does the first.

    Every asset here passes
  7. Check 07

    Materials and maps in an agreed set

    A known number of material slots, a stated map set — base colour, roughness, metalness, normal — at agreed resolutions, in a format the target reads.

    Without it: Twelve materials on a background prop is twelve draw calls that did not need to exist. A 4K map set on a crate seen from ten metres is memory spent on nothing, and both are invisible in a render.

    How to check it in thirty seconds

    Ask how many material slots there are and what resolution the maps are. Two numbers, and they tell you more about whether an asset will ship than any turntable will.

    Every asset here passes

These are not a rating of me — they are the list I would want a client to hold me to, and every asset that leaves here passes all seven. Publishing it is only worth anything if it cuts both ways, so: ask me for any of the seven on any piece of work in this portfolio, and if I cannot produce it the answer is that I did not do it.

7 of 7 asserted on every delivery.

Triangle budgets by target

“Low poly” is not a property of an asset.

"Low poly" is not a property of an asset. It is a relationship between an asset and a target, and the same crate is extravagant in the first row and starved in the last.

Typical triangle and texture budgets, by where the asset has to run
Target Triangles Maps Note
Mobile, background prop 300 – 1,500 512 – 1K Draw calls matter more than triangles here. One material, always.
Mobile, hero object 3,000 – 8,000 1K – 2K The thing the player holds or stands next to. Everything else in the scene pays for it.
VR, interactive 2,000 – 10,000 1K – 2K Rendered twice, ninety times a second. The strictest budget on this list and the one most often ignored.
PC / console, hero 40,000 – 150,000 2K – 4K Where most "game-ready" portfolio work actually sits, whatever the description says.
Archviz, still image 200,000 + 4K Almost unbounded, because nothing has to run in real time. The constraint is render time, not memory.
Film, hero asset Millions 4K – 8K udim Subdivided at render. The base cage is what gets reviewed and it is far lighter than the number suggests.

Turntables

Proves 3 things. Not the 5 that decide whether it ships.

What it does prove

  • The silhouette reads from every angle.
  • The materials respond sensibly to light.
  • Somebody spent time on the lookdev.

What it does not

  • That the topology can deform.
  • That the asset imports at the right scale.
  • That the UVs will bake.
  • That anyone but its author can navigate the file.
  • That it fits any performance budget at all.

A turntable is a good thing and I will send you one. It is just worth being clear about which half of the job it covers — three of the things it shows you, and none of the five that decide whether the asset ships.

“We approved a set of props from renders and lost most of a sprint to it. Every mesh imported at a hundred times scale, the pivots were wherever the artist had left them, and two of the props shared overlapping UVs so nothing baked. The renders were genuinely beautiful. That was the problem.”

Technical art lead, mid-size games studio — on why they now ask for wireframes first

Open the Asset Spec →

Rates

Quoted from a target, never from a description.

Hard-surface prop, game-ready

From $380

High-poly, retopologised, unwrapped, baked and textured against your stated target. All seven checks, every time.

Hero asset, PC or console

From $1,400

Quoted from reference and a target, never from a description. A prop and a hero are different jobs, not different sizes.

Environment set, 10–20 pieces

From $6,200

Kit-based, with a shared material set and a modular grid agreed before anything is modelled.

Retopology and UVs only

$65/hr

The rescue job. Frequently cheaper than it sounds and occasionally more expensive than rebuilding, which I will tell you before starting.

Source files

Included

Blend or Max plus FBX and glTF, named and organised. A file only its author can open is not a delivery.

Common questions

Including whether this is a dig.

Is this list a dig at other artists?

No, and it would be a cheap one — a lot of superb modellers have never had a client ask for a texel density figure, because almost no client knows to. It is a list for the person commissioning the work, and the reason it is on my site rather than in a forum post is that I would like to be held to it too.

Can I see turntables?

Yes, in the first email, alongside a wireframe and a UV layout for the same asset. Sending all three together is the entire argument of this page in practice rather than in prose.

What if we do not know our triangle budget?

Then that is the first conversation, and it is a short one — the platform and the object's role in the scene decide it. Guessing a number and building to it is how an asset gets rebuilt.

Do you do characters?

No. Hard-surface, props and environments. Character work is a different craft with a different failure mode and I would rather refer you to somebody who does it every day.

Which software?

Blender and Substance, with Max when a studio pipeline needs it. It matters far less than anyone outside the trade expects — the checks on this page are software-agnostic and so is a bad mesh.

Can you fix assets we already have?

Often. Send one file and I will tell you honestly whether retopology is cheaper than rebuilding, including when the answer costs me the bigger job.

Send a brief

Where does it have to run?

That answer decides the budget, the topology and the map set, so it is the first field. Fields marked with an asterisk are required.

This demo form posts nowhere. Point site.formAction at your own endpoint.