Traditional game asset
A wallet or NFT points to metadata, the metadata points to a file, and the file must remain available somewhere outside the chain.
NICECHUNK
NICECHUNK FOURIER MODEL
NCFM is the research direction behind NiceChunk's next asset layer: store a tiny Fourier/function description on-chain, then let the client deterministically reconstruct the voxel item through RPC. No GLB file, no mutable JSON, no IPFS gateway dependency.
A wallet or NFT points to metadata, the metadata points to a file, and the file must remain available somewhere outside the chain.
Better than a normal server, but the game still depends on external content routing, pinning, gateways, and metadata conventions.
The item is a deterministic function payload. Ownership, rendering rules, verification hash, and visual identity can live together in account data.
PRINCIPLE DIAGRAM
NCFM treats a 3D item as a deterministic field instead of a static file. The chain stores the smallest canonical record: seed, quantized coefficients, palette rules, grid limits, and a verifier hash. The browser expands that record into the visible item.
For every coordinate, the client asks the same question: does this point satisfy the agreed functions? Accepted coordinates become material voxels.
Because sampling order, grid bounds, quantization, and palette are canonical, the generated voxel set can produce a stable model hash.
The account does not need to carry a heavy mesh. It only needs the record required to regenerate and verify the object forever.
FUNCTION INTERSECTION LAB
This demo uses a pickaxe because the shape is easy to read: an XY function defines the outline, material bands, and color; a Z function defines thickness. Only coordinates accepted by both functions become voxels.
Using function-generated pickaxe.
First, the item is only a 2D function. Fourier descriptors reconstruct the pickaxe outline as a curve over time, proving that the shape can be represented by coefficients instead of an image file.
// Function 1: draw only on XY
const Cxy = (t) => Σ c[k] · e^(i · k · 2πt)
// c[k] comes from the pickaxe outline
c[k] = 1/N · Σ P[n] · e^(-i · k · 2πn/N)
for t from 0 to drawProgress:
p = Cxy(t)
drawLineOnXY(p)
output = 2D function curve
The second function turns the 2D outline into a volume. Blue marks the XY projection, gold marks the Z thickness rule, and green marks coordinates accepted by both functions.
function FXY(x, y) {
structure = FourierPickaxeXY(x, y)
material = structure.material
color = structure.color
return { inside: structure.score > 0, material, color }
}
function FZ(x, y, z) {
thickness = 1.8 + 0.42·cos(0.27x + 0.31y)
+ 0.18·sin(0.61x - 0.23y)
return cos(πz / thickness) > 0
}
voxel(x,y,z) = FXY(x,y).inside && FZ(x,y,z).inside
The final item is not loaded from a mesh. The client scans deterministic coordinates, keeps only the points accepted by both functions, applies material color, and renders the resulting voxel model.
voxels = []
for x in X:
for y in Y:
xy = FXY(x, y)
if !xy.inside: continue
for z in Z:
if FZ(x, y, z).inside:
voxels.push({ x, y, z, color: xy.color, material: xy.material })
output = FXY(x,y) ∩ FZ(x,y,z)
Key point: the chain stores the function seed, coefficients, parameters, palette, and verifier hash. The visible 3D model is recreated from code, not downloaded as a 3D file.
CHAIN VERIFICATION PIPELINE
NCFM keeps the chain payload small by making the heavy visual reconstruction a deterministic client operation. The important part is that all clients derive the same model hash from the same code.
Fetch the payload from a PDA or asset account through RPC.
Parse seed, palette, Fourier coefficients, field parameters, and verifier hash.
Run the canonical sampler over the agreed voxel grid.
Build a mesh or voxel instance buffer locally and compare the deterministic model hash.
TECHNICAL MEANING
The goal is not only compression. The goal is to make game assets transparent, permanent, cheaply readable, and reproducible by any client or explorer without trusting a private asset server.
If the payload remains on-chain, the asset definition remains available with the account history.
Players can inspect the exact function code and parameters used to reconstruct the item.
A short RPC read replaces multiple metadata, gateway, and file fetches.
The same compact record can be interpreted by games, explorers, crafting tools, and future clients.
DATA MODEL
WHY IT MATTERS
If the item can be described as a short function, the chain only stores the minimum seed and parameters. The world can still render rich 3D assets while keeping storage cost predictable and publicly auditable.
View older Fourier voxel demo