Search projects, hackathons, sponsors and tech

    ← All projects

    Voxel Bench

    An agent crafts Roblox objects and games from a sentence. Recipe authors earn onchain.

    Demo

    About

    Voxel Bench turns a sentence into a Roblox object, and pays for it the way agents should pay: per step, onchain, within a limit you set. You sign in with an email, Google, X or a wallet and give your agent a budget by signing a USDC permit on Arc — no gas, no transaction. Then you describe what you want. The agent finds each service it needs by resolving an ENS name, reads the price from the name, and pays over x402: HBAR on Hedera for the recipe, USDC through Circle Nanopayments on Arc for the craft. Headless Blender builds the object in about seven seconds, and it is uploaded through Roblox Open Cloud into your own account, with its render as the icon. The browser shows every payment as it happens, with its transaction. Every object comes from a reusable recipe, and recipes have authors. Claim yours by signing a message and it is recorded on RecipeBook; from then on anyone who crafts with it pays you 90%, split onchain by a contract you can read instead of a dashboard you have to trust. The marketplace and your backpack are read from the chain. Recipes compose. Pick pieces from your backpack and the marketplace and the agent lays them out as a playable obby — a spawn, hazards that kill, platforms that move, a timed finish, a fall into a void — that you play in Roblox Studio, with every piece's author paid. The onchain economy lives on our side — crafting fees and recipe royalties — while your game runs on Roblox as usual, and everything it earns stays yours.

    How it's made

    A sentence goes to a language model (Gemini, with an OpenRouter fallback) that writes a recipe: JSON ingredients — primitives with sizes in studs — validated against a schema. The model never touches Blender, so the same recipe is the same object every time. Headless Blender 5 builds the recipe and exports a GLB and a preview render; a Python writer turns it into a native Roblox .rbxmx in exact studs and colours (FBX arrives 100× too large and grey, so we skipped it). Cones become four corner wedges, since Roblox has none. The work is split into three x402-gated services behind a paywall — recipe, craft, publish — so no key is shared and no stage can do another's job. A Node agent holds the wallets. It discovers services by resolving recipe.voxelbench.eth, craft.voxelbench.eth and publish.voxelbench.eth on ENSv2; each name carries the price, asset, network and payee, and the agent refuses any 402 that disagrees with the name. A service can edit its own url record but not its price, so the two numbers are never both written by the party being paid. Moving a stage between chains is a record change the agent follows without a redeploy. Recipe and publish settle in HBAR on Hedera through the public x402 facilitator. The craft stage settles on Arc through Circle Gateway (@circle-fin/x402-batching): the agent keeps a USDC balance in Gateway, signs each 0.005 USDC payment against it, and Circle settles in batches. Our own EIP-3009 facilitator is the fallback for Arc. Each person's money is their own: an EIP-2612 permit on Arc's native USDC gives the agent a budget, and each job is taken with transferFrom before any work is paid for — the token enforces the limit. The platform's own spending is capped by an Allowance contract drawn from before every craft. Three Solidity contracts, deployed on Hedera and Arc testnets with Hardhat and viem: RecipeBook (authors, craft counts, the 90/10 split), SplitVault (balances authors withdraw) and Allowance (the agent's cap). 64 tests, including fuzzing and stateful invariants. An audit found that anyone who saw an unclaimed recipe id could claim it — a signature proves a wallet, not the work. We closed it on both sides: the agent records privately who paid for each craft and relays a claim only for them, and RecipeBook records an author only from that agent, its attester. The books were redeployed against the existing vaults and the earlier recipes migrated and sealed. The site is Next.js 16 with TypeScript, Tailwind 4, GSAP and Lenis, three.js for the GLB viewer, Privy for email and social sign-in, and Supabase for the catalog of names and previews. Obbies are a recipe of recipes: the agent lays pieces out as a floating course with jumps a character can make, and a Luau runtime shipped inside the model gives each piece its role — spawn, checkpoint, kill, mover, finish — lifts the course over a void on Play and lights it at night. For the demo, Blender runs on our own machine behind a tunnel. On mainnet, a dedicated server takes its place. Either way, the site says honestly when the crafter is offline and shows a checked-in sample instead.