Product mock-up in 3D
ivy.agent.product-mockup-3d · v0.1.0
ivyx
Turns a client's brief into a 3D product mock-up: a model picks the shape (a box, a bottle, a badge or a sign), the label and the palette, and the model is built as a glTF binary with a poster of it drawn as SVG. The 3D file is viewed in IVYX Agency with an orbit; kind deliverables.
Steps
In the order the agent's file lists them, each with where its inputs come from and the values the file fixes. A branch or a loop is a step too.
- 01Ivy NodePut the request together for the modelivy.node.design-brief
Puts the request together as one text for the model's turn: the client, the service, the month, the brief and the figures, so the model writes for the right client.
- takes
brieffrom the agent's inputclientfrom the agent's inputservicefrom the agent's inputrequest_idfrom the agent's input
- 02Model turnChoose the shape, the label and the palette
The context is a client's brief for a product mock-up, with the client's name. Return a JSON object with: shape (one of box, bottle, badge, sign: box for packaging, bottle for a drink or cosmetic, badge for a pin or an award, sign for a shop or an event), label (the words on it, at most 3), palette (bg, accent, text as 6-digit hex colours fitting the brief's mood), caption (one sentence on what is shown). Answer with the JSON object only. Colours are 6-digit hex. Keep the words short and concrete; no exclamation marks; no claims the brief does not make.
- takes
contextfrom step 1
- 03Ivy NodeBuild the model and its posterivy.node.design-glb
Builds a product mock-up (a box, a bottle, a badge or a sign) as a glTF 2.0 binary in the brand's colours, with smooth normals and PBR materials, and draws an isometric poster of the same thing as SVG for a thumbnail.
- takes
specfrom step 2,outputname_prefixfrom the agent's input,client
- 04Ivy NodePack the deliverablesivy.node.design-pack
Gathers the files the steps before it made into one answer of kind deliverables (request, client, service, brief, the spec, the files with their bytes).
- takes
specfrom step 2,outputrequest_idfrom the agent's inputclientfrom the agent's inputservicefrom the agent's inputbrieffrom the agent's inputfiles_afrom step 3,files- returns
kind,request_id,client,service,brief,spec,files,count
Nodes it brings
Adding this agent in IVYX Studio adds these nodes with it. A node your workspace already has is kept as it is, even at another version.
What it touches
Collected from what each of its nodes declares, plus the model call when a step is a model turn. A declaration is the author's statement, and it is what policy rules select on.
Inputs
| Field | Type | Description |
|---|---|---|
| briefrequired | string | What the client asked for, in their words or the account lead's: the subject, the audience, the tone, the colours if any. |
| client | string | The client's name, as IVYX Agency knows it. |
| service | string | The service this is work for, as IVYX Agency knows it (e.g. Content Production). |
| request_id | string | The request's id on the channel it came from; the key that keeps one request from running twice. |
Outputs
| Field | Type | Description |
|---|---|---|
| kindrequired | string | deliverables: what this output is, for a receiver that takes several kinds. |
| request_id | string | Not declared |
| client | string | Not declared |
| service | string | Not declared |
| brief | string | Not declared |
| spec | object | The design spec the model wrote from the brief, as rendered. |
| filesrequired | array | The files made: name, mime, kind, bytes, data (base64), width, height, caption, variant. |
| countrequired | integer | Not declared |
Tests
2 of 2 test cases passed on Oct 25, 2026, in the publisher's own environment, before this version was published. The registry keeps that record; it does not run the cases again.
Requires: python:3.9, a model core
- bottle
A drink's mock-up is a glTF binary and its poster.
- given
briefFoxtrot Health launches a vitamin drink, Foxtrot Fizz. A bottle mock-up in coral and cream for the pitch deck.clientFoxtrot HealthserviceDesignrequest_idcase-3d-1- expects
kindequals deliverablescountequals 2files.0.mimeequals model/gltf-binaryfiles.0.datamatches ^Z2xURgfiles.1.mimeequals image/svg+xml
- box
A boxed product is a mock-up and a poster too.
- given
briefA box mock-up for Acme's coffee beans gift set.- expects
kindequals deliverablescountequals 2files.0.mimeequals model/gltf-binary