the stanford bunny, 2,503 vertices and 4,968 faces, rasterised by the renderer itself. move the cursor over it.
[01] what it is
two files. the first drops the stanford bunny into any page as a <pre> you can turn with the cursor. the second is a node script that bakes your own mesh into the same kind of self-contained renderer.
one <pre> and one script tag for the bunny demo
node obj-to-ascii-render.js model.obj writes a plain .js file
no npm packages, no bundler, no runtime imports
[02] how it works
positions, normals and triangle indices are loaded once as typed arrays. every frame the mesh is rotated, projected orthographically onto the character grid, and shaded by one key light with two weak fills. luminance picks a glyph from a density ramp. the glyph is the pixel.
on export the mesh is normalised into the unit cube, so scale and origin in blender do not matter.
[03] the limits
face indices live in a Uint16Array: 65,535 vertices after processing
uv maps and .mtl materials are ignored
models without normals get smooth normals averaged from adjacent faces
anything larger needs decimating before export
a framebuffer is not the only way to make a model legible. at the right resolution, characters carry the silhouette.