Help

Stuck, or just starting? Start here.

Camlin Create is a maker you talk to. Say what you want and a Camlin avatar makes it on the canvas beside it, then keeps changing that same piece as you keep talking. The tasks at the top are the ones most people come for; open a panel below for anything else, or search.

Start hereMake your first thing, change it, attach a file, share it, keep it, get unstuck.

Pick the one you came for. Each is three or four steps; the panels below have the detail when you want it.

The Camlin Create Loop: Ask with voice or typing, Maker generates live on the canvas, Refine with direct controls and follow-up asks without starting over1. ASK“Play 3D Kart Racer”Voice well or typing2. MAKELive progressive canvas3. REFINEGizmosUndoPlayDirect touch & hotkeysKeep talking — changes apply to the same piece in history
  • Make your first thing

    What to say:

    “Draw a yellow circle.”

    “Make a 3D kart racing game with Sam driving and engine sounds.”

    “Create a five-slide presentation about solar energy in Australia.”

    Open Create, tap the page once so sound is allowed, then say or type what you want. A few words is plenty.

    How

    1. Open Create. A fresh page says “Tap to start” under the avatar — tap it (or press any key) and the avatar says hello.
    2. Tap the well to talk, or type in the box under the avatar and press Enter. Try “draw a yellow circle”, “make a catch-the-mice game” or “a five-slide deck about koalas”.
    3. Watch the canvas. Every ask shows a small “Working…” line with the seconds counting; a drawing lands in seconds, a game or an app takes longer.
    4. Keep talking. “Make it bigger”, “now in blue”, “add a score” all change the piece that is on the canvas — you never start again unless you ask to.

    Good to know

    • Signed out, what you make lasts as long as the tab is open. A free account keeps it — see Keep what you make.
  • Change it, or go back a step

    What to say:

    “Make the kart go 20% faster and add smoke particles behind the tires.”

    “Change the track lighting to a dramatic sunset with long shadows.”

    “Add a shared leaderboard where players enter their initials.”

    Say what should be different and the maker edits what is on the canvas. If it went the wrong way, Undo puts the last version back.

    How

    1. Refer to the thing on the canvas: “make the cat bigger”, “add a sill under the window”, “now in blue”.
    2. Undo (or Ctrl/⌘ Z) puts the previous version back at once; Redo goes forward again. Neither spends a turn.
    3. History, next to Undo, lists every version with a picture, what you asked for and when. Tap one to go back to it, or “Start new creation from here” to branch off without touching the original.

    Good to know

    • If it did not do what you meant, Undo and ask again with a different word for the thing — “the window sill” rather than “that bit”.
  • Attach a picture or file

    Give the maker something to work from — a sketch to build a page around, a CSV to chart, a PDF to turn into a deck.

    How

    1. Find the ⊕ button beside the message box (it is labelled Options). Tap it and a sheet opens above the box with Attach, Max mode and any files already riding on your next ask. You can also drop a file onto the message box, or paste one.
    2. Pick the file. Signed in: a PNG or JPG picture, an SVG, a PDF, a text, CSV or JSON file — up to 8 MB each, six on one ask, 60 a day — or a 3D model: a GLB, glTF, OBJ, STL or PLY file, or a zip of a glTF or OBJ with its textures (up to 50 MB; it becomes one GLB of at most 8 MB before the creation uses it). On this quick chat attach, FBX, Collada and STEP files are not read yet — export them as GLB, glTF, OBJ, STL or PLY first, or upload FBX directly into your creation’s Assets library (see Canvas & versions → Assets), which converts FBX in your browser. Not signed in: PNG or JPG pictures only, two on one ask.
    3. Each file shows as a chip with its name and size. It reads “Uploading…” until it has landed (a 3D file then reads “Checking and converting…” until its GLB is ready); if it was refused, the chip says why; × removes it. Close the sheet and the ⊕ glows and pulses when a file finishes, with a count on it.
    4. Type what you want done with it and Send — “build a page from this sketch”, “chart this CSV”, “summarise this PDF as a deck”, “make a 3D model of this” (see What you can make → Picture to 3D model). Send with nothing typed and the ask is simply “Use what I attached.”

    Good to know

    • Signed in, a picture you attach becomes a file of the creation: the maker can place the original itself into a page, slide, document or project — “use my photo instead of the drawing”, “show this large with a caption” — and it stays on the creation for later asks (“the photo I attached earlier”). It can also work from it: describe it, build a page to match a sketch, or make a new picture based on it: “make this a watercolour”, “put a hat on the cat”. Not signed in, the maker can see a picture and work from it but does not keep it as a file.
    • A PDF you attach is listed under Documents in the creation, so you can read it beside the piece. Files ride on that one ask, are not shared with anyone else, and are not virus-scanned on this path — only attach what you would open yourself.
  • Share it, or post it to the library

    One Share button covers a link, a ready-made message, a QR code, email invites and the public library. People who open your link never see your prompt or your email — only the first name you chose.

    How

    1. Tap Share — the violet pill in the top bar (Ctrl/⌘ Shift S; on a phone it is the violet square). Choose “This creation”.
    2. Copy the link, or press Copy message for the title, a line about it, the link and “Made with Camlin Create”, ready to paste into any chat or email. Scan the QR code to open it on a phone, or type up to ten email addresses and we send the invite.
    3. Post to the library (signed in): at the end of the Link tab, add one line about it and up to five tags, tick that it is your own work, then Post. An operator checks it, usually the same day, and it lists on create.camlinconnect.com/library.
    4. “Remove from library” takes the post down at once. Unshare in the panel takes the link down. Your creation stays yours either way.

    Good to know

    • Want someone to edit with you rather than just play it? Invite to edit → “Work on this together” — they need to be signed in. The detail is under Accounts, sharing and limits.
  • Keep what you make

    Signed out, the canvas lasts for the tab. A free account keeps every creation, every version and the chat, and gives the maker all of its tools.

    How

    1. Choose “Start your free month” (on this site, or from Sign in inside the maker). Use the one-click sign-up button at the top, or enter your email and a password and then the 6-digit code we email you.
    2. Already have a Camlin Connect login? Sign in with that — it becomes a Create account the first time.
    3. Your creations are then under My creations. Open one and its chat and canvas come back where you left them.

    Good to know

    • Each account has 60 turns and about US$2 of making a day; the limit resets at midnight UTC. First month free — no plan, no card.
  • Get unstuck

    Most snags have a one-line fix. The rest is under Troubleshooting, and the team reads every report.

    Good to know

    • Anything else: the account menu (the round button at the top right) → “Report a bug or idea”, or just say “report a bug”. What you tried and what came back is the most useful thing you can send.

    Quick fixes

    • No sound — tap the page once; browsers keep sound off until you do. Check the device is not muted.
    • Not hearing you — allow the microphone when the browser asks (or from the lock icon in the address bar, then reload). The mic is closed while the avatar speaks; wait for it to finish or tap the stop square.
    • It changed the wrong thing — Undo, then ask again with a different word for the thing you meant.
    • A game or page shows an error — say “fix the errors”. The maker reads the preview’s own logs and fixes the cause; a game also gets one automatic repair.
    • “You have reached today’s limit” — turns reset at midnight UTC. A free account has a larger allowance than an invite link.

If it does not work:If none of these is what you came for, type a word into the search box — it looks inside every panel, closed or open.

What you can makeDrawings, pages, games, 3D scenes, printable models, 3D models from a picture, apps, decks, documents, guides, Camlin Connect assistants.

One conversation, ten kinds of thing. Describe what you want and the maker picks the kind. Say “a page”, “a game”, “a deck” or “a 3D model” when you care which.

One conversation, many kinds: out of the Create mark come a drawing, a page or a game, a 3D scene or model, slides, documents and guides, an app with code, and a Camlin Connect assistantA drawingA page or a gameA 3D scene or modelSlides, docs, guidesAn app with codeA Camlin Connect assistant
What to say to use these powers:

“Build a 3D kart racing game with Sam driving, Three.js, and engine sounds.”

“Draft a Statement of Work grounded against past decisions in Decision Memory.”

  • Drawings

    What to say:

    “Draw a yellow circle.”

    Vector drawings that appear as they stream. Ask for more detail, a colour, a different shape.

  • Pages

    What to say:

    “Make it a window with a view.”

    Web pages and small interactive pieces, rendered live in a sandboxed frame. A times-table trainer or a map quiz is a page too — ask for a learning tool.

  • Catch the stars on a phone: a paddle, three falling stars and a score of 12; a parent holds the phone and smiles12

    Games

    New
    What to say:

    “Make the cat catch mice — a game.”

    “Add a shared global leaderboard with Camlin Server for player high scores.”

    “Add realistic Web Audio engine sounds that rev up with vehicle speed.”

    “Add collision impact thuds and tire screech sound effects.”

    “Play background arcade synthesizer music with a mute toggle.”

    Tiny 2D games and 3D physics games you can play right there with keys, touch steering and a score. Features a turnkey Three.js physics engine, smooth third-person camera followers, and score persistence via camlin.storage. A runtime error gets one automatic repair, from the preview’s own logs (see Power tools → Logs). Age-appropriate games share the same ask: “a times-table game for year 3”, “a gentle catch game with a score, no shop.”

  • Driving games with real car handling

    New
    What to say:

    “Make a racing game where the cars crash and dent.”

    “Make a drifting game on a twisty mountain road, with tyre smoke.”

    “A demolition derby with four cars that I can play on my phone.”

    “Make the car from Assets race three rival cars round a track.”

    “Make the handling more like a real car — less grip, no help.”

    “Add car physics to Apex Kart so the karts can crash and dent.”

    Ask for a driving, racing, drifting or crash game and the maker uses Create’s own car physics. Cars grip and then slide, drift, change gear, lean into corners and dip under braking; they dent where they are hit and stay dented, and a hard crash can tear off a bumper or a wheel. It works with cars the maker builds and with a car, kart or truck made from your own picture (see Picture to 3D model).

    Good to know

    • Arcade-style handling: it feels like a car in a game, not a full driving simulator.
    • Cars, karts, trucks and buggies only — not motorbikes, boats or planes.
    • Apex Kart, and a driving game made before car physics, keeps its own arcade driving when you change it — unless you ask for physics, crashes, dents or drifting.
    • A picture-made car drives on the wheels in its picture. If they come out thin or rough, use Compare (Tools) to build the same car in code beside it.

    What the cars do

    • Four kinds — kart, car, truck and buggy — each with its own size, weight, speed and grip.
    • Three ways to handle: arcade, grippy and forgiving (the usual one); drift, where the back steps out; and sim, with no help. Say what you want — “make it drift more”, “more like a real car”.
    • Damage you can feel: a dented corner pulls the steering and loses grip. Ask for a repair button or a pit stop and the car goes back to new.
    • Tyre marks, smoke, an engine that revs and changes gear, and the sound of a crash.
    • Rival cars that race you round the track — and crash too.
    • A car that rolls over or falls off the track is put back on its wheels.

    On a phone

    • On a phone, big thumb buttons appear: steer on the left, gas and brake on the right, and a drift button. On a laptop, use the arrow keys or WASD, Space to drift and R to reset; a game controller works too.
    • Sound starts on your first tap or key press — browsers keep it off until then.
    • A race with your car and three rivals is checked on a slowed-down phone so the physics stays a small part of each frame. Many more cars, or a very busy scene, can still slow an older phone; ask for fewer rivals or less smoke.
  • 3D scenes

    New
    What to say:

    “Turn the room into 3D.”

    “Add a 3D racecar from Camlin Assets with Sam driving.”

    “Furnish a cafe with wooden tables, chairs, coffee cups and plants.”

    “Add a natural forest of pine trees and scattered rocks around the track.”

    “Build castle walls and battlements using Camlin architectural props.”

    Lit three‑dimensional scenes you can orbit and directly manipulate on the canvas. Features interactive 3D transform gizmos (translate, rotate, scale), 24+ CC0 library props with anti-collision layout, talking avatars with 52 blendshapes, soft contact shadows, and HDR lighting. On a headset browser, “View in 3D” opens the scene as an immersive space (WebXR). On a laptop it stays on the canvas.

    How

    1. Ask for things by name — “add a car and two trees”, “put a person beside the house” — and the maker uses ready-made 3D models from the Camlin library where it has one: a car, trees, a rock, a chair, a table, a lamp, a house, a crate, a coin, a star and a dog, plus the Camlin characters.
    2. Or place one yourself: open In this creation, choose + Add a 3D model, search (“tree”, “person”) and press Place in scene. It lands beside what is there as a new version, so Undo takes it back. Then ask the maker to move, turn or resize it.
    3. Click any object in the scene to bring up interactive 3D transform handles (W to move, E to rotate, R to scale, Esc to deselect) or use the viewport gizmo bar.
    4. On a page or a game the button reads Use in an ask: the ask that names the model goes in the message box, and the maker puts it in when you send it.
    5. Your own models work too: attach a GLB, glTF, OBJ, STL or PLY (see Attach a picture or file) and ask the maker to put it in the scene.
    6. No model of the thing you want? Attach a picture of it and say “make a 3D model of this” — see Picture to 3D model below.

    Good to know

    • The library props are free to use and come with your 3D downloads. The Camlin characters are shown in Camlin only — a GLB, STL or USDZ download leaves them out.
    • An STL is read in millimetres, as 3D printers use it; ask the maker to scale it if it looks too big or small.
  • Printable models

    New
    What to say:

    “Now make it a 3D model.”

    “Make a phone stand in millimetres with a cable cut-out.”

    “Add raised text 'CAMLIN' on the front plaque in Inter Bold.”

    “Hollow out the interior leaving 2.5 mm wall thickness.”

    Parametric models with a turntable preview. Ask for raised or engraved lettering — a name plate, a sign, a label on a lid — and the maker sets it in Inter (regular or bold, up to 40 characters a line).

    Good to know

    • Download as GLB, STL, OBJ or USDZ; on an iPhone or iPad the USDZ opens in Quick Look so you can place it in the room.
  • Picture to 3D model

    New
    What to say:

    “Make a 3D model of this picture.” (with a photo or drawing attached)”

    “Turn this sketch into a 3D model for my game.”

    “Turn the treasure chest picture in Assets into a 3D model.”

    “Make a 3D model of a red tin toy robot for my game.”

    “Make another 3D model of the robot — a different take.”

    “Make a 3D model of a knight that walks around my game and waves.”

    Attach a picture of one object and ask for a 3D model: Create’s 3D model maker turns it into a textured model and keeps it in this creation’s Assets, under models/generated, ready to place in your 3D scenes, games and projects. You can also point at a picture already in Assets, or describe the object — Create can make a clean picture of it first, then the model from that picture. The model shows on your share links too, and you can download it as a GLB. A person or character that has to move comes back ready to animate — it walks, runs, waves, talks, sits and drives in your game (see Characters that move, below).

    How

    1. Sign in. The model goes into the creation’s Assets; in a creation you have not saved yet, it lands there as soon as you save.
    2. Attach the picture with ⊕, name one in Assets, or describe the object, and say “3D model” in the ask — “make a 3D model of this”. Those words are what bring in the 3D model maker; a follow-up straight after, such as “use this picture”, keeps it.
    3. The avatar says roughly how long it will take, and the chat shows each step — cutting the object out of the picture, building the shape, painting the textures, saving.
    4. It usually takes two to five minutes. Between 8 pm and midnight Sydney time (early morning in the US) the GPU that makes models is asleep, so the first model of a quiet spell can take up to ten minutes more. You can keep working: the model goes into Assets when it is ready, and Assets highlights it.
    5. Then ask the maker to use it — “add the robot from Assets beside the car”, “make the chest the prize in my game”.

    Good to know

    • Signed-in makers only, up to 10 models a day each. A model counts against the creation’s Assets space like an upload.
    • Describing an object works with every model choice: Create makes a clean picture of it first, then the model. Attaching your own photo or drawing gives you the most say over how the model looks.
    • Your model shows in 3D games, and in 3D scenes and apps the maker writes as code. A quick 3D scene made only from ready-made props cannot hold it, so ask for it in code — “rebuild this scene in code with the robot from Assets”.
    • Other models — objects, props, animals — are one still piece, not rigged or animated, and the size is not true to life: ask the maker to scale it.
    • If the maker builds the object out of simple shapes instead, ask again with the words “3D model” — “make a 3D model of this with the 3D model maker, not in code”. More under Troubleshooting.

    What it is best for

    • Props and scenery: a chair, a fire hydrant, a plant, a statue, a lamp, a small building. These come out well from one good photo.
    • A picture-made car, kart or truck can drive in a game with its wheels turning — with real car handling and dents, too (see Driving games with real car handling) — and a chest, cabinet or chest of drawers can open. Thin parts such as wheels, spokes and handles can still come out with holes or rough edges, so look at those up close.
    • For a vehicle or anything with moving parts that has to look right up close, use Compare (Tools): it builds the same thing in code beside the picture-made one, with parts that move, and you keep the one you like — or the picture-made body with the built wheels.

    Pictures that work best

    • One object, whole and in frame — nothing cut off at the edges.
    • A plain, uncluttered background.
    • A three-quarter view, so the front and one side both show.
    • Good, even light, without hard shadows across the object.
    • A photo, a drawing or a rendered picture all work.
    • People and characters work as a whole figure; a head-and-shoulders picture gives a bust.
    • Weakest: thin wires and spokes, glass and clear plastic, writing, and very flat things such as a sheet of paper or a logo. A whole scene or several objects together also gives a poor model.

    Characters that move

    • Ask for a 3D model of a person or character and say what it does — “make a 3D model of my explorer and make him walk”. Create draws a clean picture of the whole figure first: facing you, arms held a little out from the body, legs apart, so the arms and legs come out separate.
    • You get the same textured model with a skeleton and seven animations — idle, walk, run, wave, talk, sit and drive. The maker plays them in your game: standing, walking or running at the character’s pace, waving, talking, sitting on a bench, or driving a kart.
    • Using your own picture? The same picture works best: the whole figure, from the front, arms away from the body, legs apart. Arms held tight to the sides stay stuck to the body.
    • Works well: cartoon and realistic people, children, robots, armour, coats, long hair.
    • Less well: long skirts, gowns and robes take short steps and cannot sit or drive well; long capes bunch up a little; hands are mitten-like, so fingers do not move; the feet slide a little as it walks.
    • Something to hold — a sword, a bag, a phone — is best as its own model that the maker puts in the character’s hand.
    • Animals and creatures with four legs are not animated; they stay a still model.

    What you get

    • One GLB file under 8 MB, with up to about 200,000 triangles.
    • Textures for colour, shine and metal, so it lights properly in a 3D scene.
    • A file in Assets at models/generated/ with a short name — models/generated/red-robot.glb — that the maker loads by its path.
  • Apps with code

    What to say:

    “Build me a small to-do app.”

    “Build a multi-file 3D kart game with index.html, style.css, app.js and audio.js.”

    “Split this game into separate modular files and add a plan.md.”

    “Store user preferences and notes with Camlin Server KV.”

    “Create a todo.md checklist in the project to track next features.”

    Multi-file apps in JavaScript or TypeScript — the files under In this creation, the preview on the canvas. “Code” (the old Show code) opens an editor on any piece, full width by default (“Preview beside” brings the split back); edit, then Apply (or Ctrl/⌘ S) to make it a version — Revert drops it — and the avatar knows what you changed on your next ask.

    Good to know

    • Download the whole app as a zip.
    • An app may hold up to 64 code files and 5 MB in total; each ask after the first changes only the files that need it. Max mode keeps a large app.js in view rather than cutting it mid-script. Pictures, sounds, fonts and 3D models go in Assets and do not count.
  • Slide decks

    What to say:

    “Make a five-slide deck on renewable energy in Australia.”

    “Add an executive summary slide with key metrics and presenter notes.”

    “Add speaker notes to every slide so the avatar can narrate them out loud.”

    Slides with speaker notes the avatar can read aloud — ask it to “present” or “narrate” the deck. Export to PowerPoint or PDF.

  • Documents

    New
    What to say:

    “Draft a Statement of Work for Cloud Migration grounded with Decision Memory.”

    “Add a commercial milestones schedule and SLA response terms.”

    “Draft a variation proposal citing precedent approved hourly rates.”

    Executable research papers with LaTeX equations ($$...$$) and live simulation links, statements of work (SOWs), variation proposals, master services agreements, technical specifications with Mermaid diagrams, and briefs with structured sections and a table of contents, exportable to Word or PDF. Create drafts documents with visual clause diffing and Decision Memory grounding, with formal audit appendices. A term of lessons or a club activity pack is an education programme in this form.

  • Research papers: the structure check, sources and exports

    What to say:

    “Write a research paper on battery storage with a live model of the payback period.”

    Ask for a research paper and the bar above it shows either the gaps it found or “Structure check: complete”. The structure check is a checklist, not a review: it looks for an Abstract, a Methodology (or Methods, Mathematical formulation or Experimental setup) section and a References section, and for leftover placeholders such as [TBD]. Tap a gap and Apply fix asks the maker to fill it.

    What it does not check

    • It is not peer review. It does not check that the results are right, that the maths holds, or that the argument is sound.
    • It does not check sources. When the maker searched the web, the sources it used are listed under the piece; open each one and check it says what the paper says before you rely on it.

    Exports

    • Download PDF (A4, print-ready) and Download DOCX (Word, with headings and tables kept) are on the canvas toolbar.
    • There is no LaTeX (.tex) or BibTeX export yet. Equations are written in LaTeX notation ($$…$$), so you can copy them from the Raw view into your own LaTeX document.
    • Run experiment cards open the simulation beside the paper; ask the maker to state the seed and the parameters in the paper if a reader needs to repeat a run.
  • Camlin Drafter

    New
    What to say:

    “Draft an agreement with visual clause diffs and decision citations.”

    In-canvas Document Studio for reviewing and refining statements of work, variation proposals, service agreements, and executive briefs with Camlin Drafter. Switch between Real and Raw markdown views, inspect proactive gap detection, review visual red/green clause diffing with the Confirm Bar, verify Decision Memory precedent grounding, and export ready-to-sign Word or PDF documents with formal audit appendices.

  • A Saturday pikelets guide on a tablet: the Maker in a small panel reads the steps out loud; Wash hands and Mix batter are ticked, Bake 12 min is nextSATURDAY PIKELETSWash handsMix batterBake 12 min

    Guides

    What to say:

    “Walk me through setting up…”

    Step-by-step walkthroughs with checks and small illustrations. The avatar narrates each step and waits for you. Homework, a science fair, or setting up the family tablet uses this same form.

  • The Camlin avatar in Create builds a phone and chat assistant as scenes on the canvas; it travels into Camlin Connect, a business owner approves it, and it answers a real phoneCamlin ConnectApprovedbuilt on the canvasanswers the phone

    Camlin Connect assistants

    What to say:

    “Make a booking app for my clinic.”

    Any Camlin Connect app — a booking line, a weather or vacation checker, a receptionist, or something you describe from scratch or from a document you uploaded. Built for real in Camlin Connect from your conversation.

    How

    1. Ask for the app. Architect builds a draft as you talk (see Plugins).
    2. Ask to change the greeting, then Try it by text — you should hear the new line. Trace shows the steps the assistant took; captured answers stay hidden.
    3. Contact Center (a button in the right rail) is Create’s own read view: where callers can reach the app, how each ask is handled (handed to a person, taken as a message, answered), the opening hours, and one link to the app in Camlin Connect.

    Good to know

    • A test app in Create’s space has no number, queue or agents, so only Try it reaches it; Camlin Connect’s own Contact Center holds the numbers, queues, agents and live calls.
    • Publishing waits for a person to approve it in Builder, and nothing is ever dialled from Create.
  • Import a 3D capture

    What to say:

    “Drop a .ply, .splat, .ksplat or .spz file on the canvas.”

    Gaussian splat captures up to 150 MB open on the canvas and the avatar can talk about them. The capture stays on your device; it is not uploaded.

Coming next

Two more things the same avatar and canvas will open onto. Both are in development — the idea, not a date. Shared collections already work from the chat and from a creation page, and Camlin Server functions already run from a creation page too (see Camlin Server); Studio’s first steps are under Plugins.

  • A business owner's photos and a short video go through the Camlin Avatar mark; his avatar appears on a widget, ready to blink, smile and speakphotos · videoAvataron a widget

    Camlin Avatar Studio

    In development

    A Camlin avatar of yourself from photos or a short video. The first steps — capture, measure and a fitted head on the canvas — are in Create now by invitation while in preview (see Plugins). A voice of your own, and listing in the public avatar set, are still in development.

  • The Maker, on a tablet, walks a statement of work section by section and shows the source beside each claim; the person writing it decides1 Scope2 Approach3 Next stepssource shownsection by sectionthe avatar asksyou decide

    Camlin Drafter

    In development

    While in-canvas document drafting, visual red/green clause diffing, and Decision Memory citations are live under Documents today, the dedicated Camlin Drafter specialist plugin — where the avatar walks an external Decision Memory workspace section by section — is in development. Not in Create yet.

If it does not work:Got the wrong kind? Say which — “make it a game”, “as a deck instead”. The new kind is added beside what is there and the original stays in the creation.

Interactive 3D ControlsNewCanvas gizmo handles (W/E/R), 3D games with follower cameras, character rigs, soft shadows and HDR environments.

Create brings direct spatial manipulation to 3D scenes and games. Click any object in a 3D scene to reveal interactive transform gizmos, switch modes with hotkeys, steer 3D physics games with third-person follower cameras, and pose rigged characters with standard animations.

Interactive 3D Controls: TransformControls gizmo with translation, rotation and scale handles, follower camera tracking a 3D kart, soft shadows, and 60 FPS physicsXYZFollower CameraElevation dampingPickup CoinBarrier[W] Move[E] Rot[R] SclEsc60 fps • Soft Shadows • ACES Filmic
What to say to use these powers:

“Put Sam driving the kart and add engine sounds.”

“Move the kart to the starting grid and rotate it 45 degrees.”

  • Direct spatial manipulation (TransformControls)

    New
    What to say:

    “Move the kart to the starting grid and rotate it 45 degrees.”

    “Scale up the pine trees along the track to make a dense forest.”

    “Align the chairs facing the central stage.”

    Click any 3D prop or character on the canvas to attach interactive 3D handles for translation (position), rotation, and scale. A floating viewport gizmo bar provides quick access to Move, Rotate, Scale, and Done modes.

    How

    1. Click any object in the 3D scene to select it and activate the transform gizmo.
    2. Drag the red (X), green (Y), or blue (Z) axes to move, rotate, or scale along a single dimension, or drag the planar squares for multi-axis movement.
    3. Use the floating viewport bar at the top of the canvas to switch between Move, Rotate, and Scale, or tap Done to deselect.
    4. Every gizmo drag-end cleanly commits an undo snapshot via createHistory, so Undo (Ctrl/⌘ Z) restores the exact previous position.

    Good to know

    • Clicking the ground plane or pressing Escape deselects the active object and hides the gizmo.
    • Gizmo manipulation works seamlessly alongside conversational asks — move an object by hand, then ask the maker to duplicate or colour it.
  • 3D hotkeys and camera navigation

    New
    What to say:

    “Switch to Translate mode (W) to reposition the vehicle.”

    “Rotate the car with E and scale with R.”

    “Orbit the camera around the main building.”

    Quick single-key shortcuts let you switch transform modes instantly without leaving the canvas.

    How

    1. Press W to activate the Translate (move) gizmo.
    2. Press E to activate the Rotate gizmo.
    3. Press R to activate the Scale gizmo.
    4. Press Escape to deselect the active object.
    5. Left-click and drag on the canvas background to orbit the camera; right-click and drag (or two-finger drag) to pan; scroll to zoom.

    Good to know

    • Hotkeys are disabled while typing in the chat or code editor.
  • Turnkey 1-click 3D games & follower camera

    New
    What to say:

    “Play 3D Kart Racer” or “3D Platformer Arena”

    “Play 3D Kart Racer with third-person follower camera.”

    “Add hazard obstacles on the track and collectible stars.”

    “Put touch control pedals on mobile screens for gas, brake and drift.”

    Launch complete, playable 3D games instantly with one tap on the canvas starter chips or by asking in chat. Built with a turnkey Three.js 60 fps game engine featuring player physics (acceleration, steering, braking, drift handbrake), third-person camera followers tracking heading and lookAt targets with elevation damping, arena bounds, hazard obstacles, collectible coins and stars, on-screen speedometer HUD, and dual controls (keyboard + mobile touch pedals).

    How

    1. Tap “Play 3D Kart Racer” or “3D Platformer Arena” on the canvas starter chips for instant 1-click play.
    2. Desktop play uses responsive keyboard steering via WASD or arrow keys (Space for drift or jump).
    3. Mobile and tablet browsers automatically display on-screen touch pedals (Gas, Brake, Drift) or directional buttons.
    4. Collision boundaries and obstacle physics prevent players from falling through floors or clipping walls.
    5. Scores and high score bests persist between visits via the camlin.storage page bridge.

    Good to know

    • Physics simulations run in the sandboxed preview at a steady 60 fps with ACES Filmic tone mapping and soft contact shadows.
    • High scores saved with camlin.storage stay on the device for that creation.
  • Humanoid character body rigs & animation clips

    New
    What to say:

    “Put Sam driving the kart in Apex Kart.”

    “Add a rigged character who waves and walks over to the bench.”

    “Mount Jeremy's head on the character body and play the talk animation.”

    Humanoid characters feature genuine clothed and textured 1.75m CC0 rigged bodies mounting Camlin bust heads (Arc, Cara, Sam, and more). Embedded GLB skeletal skinning and animation playback lets characters perform standard animation clips: Idle, Walk, Sit, Wave, and Talk.

    How

    1. Characters support five standard animation clips: Idle, Walk, Sit, Wave, and Talk.
    2. An on-canvas animation toolbar offers instant Play/Pause toggling and a clip selector dropdown.
    3. Standard neck bone anchor point mounts any Camlin character bust head seamlessly.
    4. Ask the avatar to trigger animations contextually in games or interactive scenes.

    Good to know

    • Rigged character animations blend smoothly between states to prevent jarring snaps.
    • Characters retain realistic proportions matching the 1.75m humanoid standard with authentic textured clothing.
  • 24+ CC0 prop catalogue & smart spatial layout

    New
    What to say:

    “Furnish a modern cafe with tables, chairs, plants and cups.”

    “Spawn prop-kenney-racecar and three pine trees on the grass.”

    “Place a coffee cup on the table and make sure it sits on top.”

    Over 24 curated CC0 props across Vehicles, Nature, Furniture, Buildings, Game Pickups, and Animals, beautifully textured in authentic low-poly style with pre-rendered 128×128 isometric WebP thumbnails in the model picker.

    How

    1. Search with multi-token queries (e.g. “wooden table”, “pine tree”, “race car”) or filter by category in the model picker.
    2. The heuristic spatial layout engine automatically prevents overlapping bounding boxes between placed props.
    3. Intelligent vertical stacking recognises surfaces — place a laptop or coffee cup and it rests neatly on top of a table rather than floating or intersecting.

    Good to know

    • Props are royalty-free CC0 assets that download with your GLB scene export.
  • Soft contact shadows & HDR environment lighting

    New
    What to say:

    “Set the scene lighting to sunset with warm shadows and PCF filtering.”

    “Switch environment lighting to dramatic studio preset.”

    Professional visual polish built into the 3D renderer. Percentage-Closer Filtering (PCF) soft contact shadows ground objects realistically on the ground plane (y = 0), avoiding harsh, artificial edges.

    How

    1. Five curated HDR environment lighting presets: Studio, Outdoor, Sunset, Dramatic, and Neutral.
    2. Presets provide realistic image-based lighting (IBL) reflections and balanced ambient fill across metallic and rough materials.
    3. Shadow maps dynamically update as objects are moved with gizmos or animated across the scene.

    Good to know

    • PCF soft shadows are optimised for mobile and desktop WebGL performance without frame drops.

If it does not work:If a 3D gizmo handle does not appear, click directly on the object’s mesh. Press Escape or tap the background to deselect. More shortcuts under Shortcuts.

Talking 3D Characters & VoiceVoice or typing, 52 blendshapes, iframe SDK bridge, procedural idle, listening, interrupting, Max mode.

Speech first. Say what you want; the avatar answers out loud within a few seconds and works on the canvas while it speaks. Every turn is a version you can go back to.

A man asks for a kart game; the Camlin avatar in Create makes it on the canvas beside it; the same game opens on a phone from a shared link“Make me a kart game.”sharedmade while it talksyou ask
What to say to use these powers:

“Make the avatar announce each lap time and say congratulations when winning.”

“Have Sam shout 'Ouch!' whenever the kart collides with an obstacle.”

  • Tap to start

    A fresh page reads “Tap to start” under the avatar. One tap or key turns sound on and the avatar says hello — browsers keep sound off until you touch the page.

    Good to know

    • The opening line varies from visit to visit. Open a creation and it tells you which one and where you left it — “Back to “Apex Kart”, your game at version 4. Last time you asked for “make it faster”. A change is waiting for you to apply or discard. What next?” — or, after a reload mid-turn, that it is picking the turn back up.
  • Talk or type

    What to say:

    “Make the avatar announce each lap time and say congratulations when winning.”

    “Have Sam shout 'Ouch!' whenever the kart collides with an obstacle.”

    “Make Jeremy speak using Camlin Speech when the player taps the guide.”

    “Add voice commentary with audio-locked lip sync for race milestones.”

    Tap the well to talk; tap it again to stop. Or type into the box under the avatar and press Enter. Both take the same asks and land on the same canvas, so use whichever suits the room you are in.

    Good to know

    • Prefer a different face or voice? The avatar switcher in the top bar steps through the Camlin avatars. Switching keeps your conversation and the piece on the canvas.
  • Keep listening

    Off by default: the avatar hears you only between one tap on the well and the next, so room noise and its own voice never become an ask you did not make. Turn it on and the mic reopens after each reply, closed while the avatar speaks — handy when your hands are busy.

    Good to know

    • Remembered on this device.
  • Interrupt

    Do not wait for it to finish. Tap the stop square while the avatar speaks, or just start talking with Keep listening on. Your next ask edits the piece on the canvas; it does not start again.

  • The message box and the ⊕ options menu

    Under the chat sit the message box, Send, the ⊕ options button, and the ⚡ Camlin Powers button. Attach, Max mode and the files riding on your next ask live behind the ⊕, in a sheet as wide as the chat column. When the avatar asks a clarifying question with options, an interactive Choice Question Card lets you tap an answer or type your own, and the + button on chat suggestions can queue tasks straight into your Todos list.

    Good to know

    • Beside the ⊕ button, the ⚡ Camlin Powers button gives quick access to live backend storage, 3D props, in-scene voice, and Decision Memory.
    • When Max is on, the ⊕ shows MAX underneath and glows orange.
    • When a file finishes uploading while the menu is closed, the button glows and pulses until you open it.
    • When a creation has several pieces, a small chip above the ⊕ names the piece your next ask edits (hover to read the full name) so the message box keeps its width.
    • What Studio remembers — Identity, Measured, Compared — sits in a row above the message box; tap a chip to put that piece on the canvas.
    • Esc or a click outside closes the menu.
  • Camlin Powers & chat suggestions

    New
    What to say:

    “Add a shared global leaderboard with Camlin Server.”

    “Spawn a 3D racecar from Camlin 3D Assets with Sam driving.”

    “Make the avatar speak in-scene with audio-locked lip sync on collisions.”

    “Ground this agreement against precedent commercial terms with Decision Memory citations.”

    Beside the ⊕ options button in the chat sits the ⚡ Camlin Powers button. Opening it reveals the platform’s built-in superpowers — live backend storage, 25+ curated 3D props and character heads, in-scene voice and audio, and Decision Memory precedent grounding. Above the composer, contextual suggestion chips offer one-tap next steps tailored to your current piece (leaderboards and sound for games, 3D props for scenes, commercial clauses for documents).

    How

    1. Tap the ⚡ button in the chat composer to open the Camlin Powers card.
    2. Browse the powers tailored to your current project kind (Games, 3D Scenes, Documents, or Tools).
    3. Click any prompt pill to immediately send or pre-fill the ask.
    4. Or tap any of the contextual suggestion chips floating above the message box as you build.

    Good to know

    • Powers are context-filtered: Decision Memory appears when drafting documents or SOWs; game leaderboards, 3D props and sound effects appear when making games or 3D scenes.
    • The ⚡ button is compact and shows “Camlin Powers” on hover.
  • Audio, voice recording & sound effects

    New
    What to say:

    “Play camlin-sfx:pirate-roar and sword clash sounds on hit.”

    “Use the recorded voice memo as the welcome announcement.”

    “Add engine roar and drift whoosh sound effects.”

    “Play character combat groans and battle cries when taking damage.”

    Upload audio files (.mp3, .wav, or .m4a) or use “Record audio” in the ⊕ menu, and trigger curated character vocalizations (like camlin-sfx:pirate-roar) or game sound effects via await camlin.assets.playAudio('camlin-sfx:<id>'). Full details and code examples are in the dedicated Audio & sound section below.

  • Bigger asks take longer — you can watch, stop or come back

    Every ask shows a small “Working… 12 s” line with Stop while it makes; after half a minute that opens into the progress card steps. If it is really taking a while, Camlin says so (“This is taking a while — I’ll keep showing progress.”) and keeps the card going.

    Good to know

    • A follow-up on a large project (“change the button colour”) is still a small ask — the canvas size does not make it a big turn.
    • Stop keeps the last good version on the canvas and that turn is not counted.
    • If your connection drops, or you reload or come back to the tab, the page picks the same turn up where it left off — nothing is lost and nothing is done twice.
    • Turns have a ten-minute limit; if a piece is complete when the limit lands you get it as far as it got.
    • After a long turn the chat asks once whether to notify you when long turns finish; it will not ask again.
  • Max mode

    For a big piece or a large app.js. The Max switch in the ⊕ menu (signed-in only) gives the maker its full output budget and deeper reasoning for that turn — a long story page, a big game, a project with many files. Max keeps the whole app in view rather than cutting a file mid-script, so a kart-sized project can be edited in one turn.

    When to use it

    Not for a small tweak (“polish the buttons”): the progress card says “Max mode is on — a small change like this is usually quicker without it.”

    Good to know

    • Slower, and uses more of your daily allowance — mostly in thinking time before the first line of code. If a Max turn would use more than what is left of today’s allowance, Camlin says so before starting rather than stopping half-way.
    • While it is on, the ⊕ button shows MAX underneath and glows orange. It stays on for the rest of your visit until you turn it off.
  • Pick a model

    Signed in, the ⊕ menu lists the models that can make your next turn. Each one shows its name and what a typical turn costs. Tap one and every ask after that uses it, until you pick another. Leave it alone and the maker uses its usual model, just as before.

    When to use it

    Try another model when a piece is not coming out the way you want, or when you want a quicker or a more careful pass at the same ask.

    Good to know

    • Signed-in only. With an invite link, or signed out, the maker uses its usual model.
    • A model that costs more per turn uses more of your daily allowance. The cost under each name is a typical turn, not a promise.
    • Your pick is remembered on this browser. You cannot change it while a turn is running.
    • If a model is not available right now it is not listed, and a remembered pick goes back to the usual model.

    Which one to try

    • The first in the list is the usual model, a good all-rounder. Start there.
    • The swift one is the quickest and costs least: small changes, quick drafts, trying an idea out.
    • The balanced one is a second opinion at a middling cost, for when a piece keeps coming out wrong.
    • The thorough one is the slowest and costs most a turn: a big app, a long document or a research paper with many parts to keep straight.
  • “That one ran out of room” and “Kept your last version”

    Sometimes a piece is bigger than the maker can write in one go. It first keeps going where it stopped — the progress card says “Picking up where it stopped” — and only if the piece still cannot be finished does the chat show a quiet card: the canvas keeps the last good version, the turn is not counted, and you can Retry, split the ask into smaller steps, or (signed in) tap “Try in Max mode”.

    Good to know

    • A single page, game or drawing may be up to 200 KB. A reply that comes out bigger is never cut to fit — the chat says “Kept your last version — that reply came out over the size limit” and your canvas does not move.
    • The same line appears when a reply was cut off before the end, so “updated” always means the canvas actually changed.
  • Visual clause diffing and the Canvas Confirm Bar

    New

    When amending a document, agreement or statement of work, the canvas displays proposed revisions with inline red and green clause highlights. A persistent Canvas Confirm Bar gives you direct control: compare edits with the view toggles (Diff, Proposed, Original), review added and removed clause counts (+N −M), and choose “Confirm & Commit” to save the new version or “Discard” to keep your original intact without spending another turn.

  • In-scene WebGL morph driver & 52 blendshapes

    New

    Camlin avatars feature an in-scene WebGL morph driver running at 60 fps across 52 ARKit facial blendshapes. Every vowel, consonant and expression is mapped with audio-locked lip sync during speech.

    Good to know

    • Direct GPU morph target evaluation delivers sub-millisecond facial animation updates synchronised with audio playback.
  • Audio-locked lip sync during speech

    New

    Speech audio and viseme timelines drive jaw, mouth and cheek blendshapes simultaneously, ensuring precise lip sync across every spoken phrase without visual drift.

  • Guest iframe SDK bridge (camlin.avatar)

    New
    What to say:

    “Make the avatar speak when the game starts.”

    Web pages and games created on the canvas can speak through the in-scene avatar programmatically via the page bridge SDK. Call camlin.avatar.say("Hello"), camlin.avatar.stop(), and check camlin.avatar.isSpeaking() to coordinate in-game events with avatar narration.

    Example

    What to say:

    “Speak when the player reaches level 2.”

    if (player.level === 2) {
      await camlin.avatar.say("Congratulations! You reached level two.");
    }
  • Natural procedural idle micro-animations

    New

    Between turns, the avatar remains organically alive. Procedural micro-animations drive realistic eye blinks every 3 to 6 seconds, subtle organic head sway, and rhythmic chest breathing without repeating looped video clips.

  • Full humanoid character rigs in 3D scenes

    New

    Beyond the floating conversational bust, 3D scenes and games can instantiate full 1.75m CC0 rigged humanoid bodies carrying Camlin heads (Arc, Cara, Sam and more), ready to walk, talk, sit, or wave.

If it does not work:If the avatar goes quiet, tap the page once and check the mic is allowed. If an ask did not land, Undo and say it another way. More under Troubleshooting.

Audio, Voice Recording & Sound EffectsNewUpload sound files, record voice memos with your mic, character vocalizations, game SFX, and Web Audio.

Bring creations alive with audio, voice memos and curated sound effects. Upload sound files, capture voice lines with your microphone, or trigger built-in sound effects and character voices in games, apps, and slide decks.

What to say to use these powers:

“Play pirate roar and sword clash sounds on impact.”

“Use my uploaded voice memo as the welcome sound.”

“Add slide whoosh transitions to every slide.”

“Play character combat groans and battle cries when taking damage.”

  • Uploading sound files & voice memos

    New
    What to say:

    “Use my uploaded voice memo as the welcome sound.”

    “Play the attached background music in a loop with a mute button.”

    “Trigger my custom audio clip when the user clicks the surprise box.”

    Upload .mp3, .wav, .m4a (iPhone voice memos), .ogg, or .webm audio files via the ⊕ options menu or by dragging them directly into the chat. Attached sounds are stored as camlin-asset:<id> and can be played by the avatar, used as in-scene background music, or triggered on game events.

    How

    1. Open the ⊕ options menu at the bottom of the chat.
    2. Choose Attach (or drag audio files from your desktop directly into the chat).
    3. Select any .mp3, .wav, .m4a, .ogg, or .webm file (up to 8 MB).
    4. Ask the maker to wire your sound into the creation (e.g. as a button sound, background track, or event trigger).

    Good to know

    • Quick composer attach supports MP3, WAV, M4A, OGG, and WebM up to 8 MB; your creation’s Assets library (under In this creation) supports audio files up to 25 MB including FLAC.
    • iPhone Voice Memos (.m4a) are supported natively without manual conversion.
    • Audio attachments are stored with your creation and load instantly.
  • In-browser microphone voice recording

    New
    What to say:

    “Use my recorded audio memo as the victory shout.”

    “Play the recorded voice clip when the player enters the room.”

    “Attach my spoken instructions as a voice memo for the next build.”

    Capture custom voice lines, shouts, sound clips, and voice memos directly from your microphone using the “Record audio memo” button in the ⊕ options sheet under Powers. Shout "Arrrrgggh!" for a pirate, record instructions for a tutorial, or leave spoken feedback that attaches directly to your next ask.

    How

    1. Open the ⊕ options menu and tap the Powers tab.
    2. Under the Camlin Speech & Avatar card, tap the red “Record audio memo” pill.
    3. Speak, shout, or record your sound into your microphone — the button pulses red while recording.
    4. Tap “Stop recording” to finish; your audio is attached to the composer ready for your next prompt.

    Good to know

    • Requires microphone permission in your browser.
    • Recordings are encoded as high-fidelity audio and attached directly to your current session.
  • Curated character vocalizations (camlin-sfx:<id>)

    New
    What to say:

    “Play camlin-sfx:pirate-roar and sword clash sounds on hit.”

    “Play character battle cries and combat groans when taking damage.”

    “Add celebratory laughter and victory cheers when winning the match.”

    Camlin Create includes built-in, curated vocalizations that play instantly without downloading external assets: pirate roars (camlin-sfx:pirate-roar / "Arrrrgggh!"), battle cries (camlin-sfx:battle-cry), laughter (camlin-sfx:laughter), victory cheers, combat damage groans (camlin-sfx:damage-groan), gasps, and sighs.

    Example

    What to say:

    “Play pirate roar on attack.”

    // Character vocalizations with zero external network requests
    await window.camlin.assets.playAudio('camlin-sfx:pirate-roar'); // "Arrrrgggh!"
    await window.camlin.assets.playAudio('camlin-sfx:damage-groan');

    Curated audio files load instantly with zero external network requests.

    Good to know

    • Curated sounds load instantly from local memory.
    • Combine with avatar blendshapes and in-scene camera actions for cinematic moments.
  • Game & presentation sound effects

    New
    What to say:

    “Add slide whoosh transitions to every slide in the presentation.”

    “Play sword clash and cannon blast sound effects when firing.”

    “Play coin pickup chimes whenever the player collects a gold token.”

    “Add engine roar and drift tire squeal sound effects.”

    Add punchy audio feedback to games, apps, and slide decks: sword clashes (camlin-sfx:sword-clash), cannon blasts, explosions, coin pickup chimes, engine roars, slide whoosh transitions for slide decks (camlin-sfx:slide-whoosh), polite applause, and victory chimes.

    Example

    What to say:

    “Add slide whoosh transitions.”

    // Play transitions in slide decks
    deck.on('slidechange', async () => {
      await window.camlin.assets.playAudio('camlin-sfx:slide-whoosh');
    });

    Zero-latency audio feedback enhances tactile immersion.

  • Playing audio in code

    New
    What to say:

    “Play audio programmatically using the camlin assets bridge.”

    “Play the uploaded audio file when the countdown ends.”

    Interactive projects and web pages can trigger sounds programmatically using await window.camlin.assets.playAudio("camlin-sfx:<id>"), the browser standard new Audio(url).play(), or HTML5 <audio src="camlin-asset:audio-N"> tags.

    Example

    What to say:

    “Play coin sound on collision.”

    // 1. Curated SFX via the assets bridge
    await window.camlin.assets.playAudio('camlin-sfx:coin-pickup');
    
    // 2. Standard Web Audio / HTML5 element
    const audio = new Audio('camlin-asset:audio-1');
    audio.play();

    Good to know

    • Browsers require a user interaction (tap, click, or keypress) before playing Web Audio or speech.
  • Procedural Web Audio synthesis

    New
    What to say:

    “Add real-time procedural engine pitch synthesis that rises with kart speed.”

    “Synthesize an 8-bit laser zap sound effect using Web Audio oscillator.”

    “Generate an ambient sci-fi background synth drone with Web Audio.”

    For arcade games, retro synthesizers, and procedural audio effects, Create can synthesize audio in real time using the browser Web Audio API (AudioContext, OscillatorNode, GainNode, BiquadFilterNode). Zero assets, zero network latency, and perfectly dynamic audio responding directly to game physics.

    Example

    What to say:

    “Add retro laser sound effect.”

    const ctx = new (window.AudioContext || window.webkitAudioContext)();
    const osc = ctx.createOscillator();
    const gain = ctx.createGain();
    osc.type = 'sawtooth';
    osc.frequency.setValueAtTime(880, ctx.currentTime);
    osc.frequency.exponentialRampToValueAtTime(110, ctx.currentTime + 0.15);
    gain.gain.setValueAtTime(0.3, ctx.currentTime);
    gain.gain.linearRampToValueAtTime(0, ctx.currentTime + 0.15);
    osc.connect(gain);
    gain.connect(ctx.destination);
    osc.start();
    osc.stop(ctx.currentTime + 0.15);

    Pure JavaScript Web Audio synthesis requires no external sound files.

    Good to know

    • Runs directly in the browser with zero download size and no network dependency.

If it does not work:Audio not playing? Most browsers require you to tap or click the page before playing sound. If microphone recording fails, ensure your browser has permission to access the mic.

Your canvas, versions and piecesUndo and History, several pieces in one creation, coming back to where you were, editing the code yourself.

The canvas holds the piece you are making. Behind it sit every version you have been through and, once you ask for something of another kind, the other pieces of the same creation.

A tablet shows four saved versions of one creation in a row — circle, window, room, 3D game; an undo arrow steps back one, and a spark starts a new creation from an older versionv1v2v3v4New creation from v2undo · redo · every version kept
  • Undo, Redo and History

    Every turn is a version. Undo puts the previous one back on the canvas without another turn; Redo goes forward again. History (next to Undo) lists every version with a picture, what you asked for and when.

    How

    1. Open History and tap a version to go back to it.
    2. Build again from an older version and that becomes the newest; the versions it replaced stay in History, greyed, behind “Show superseded”.
    3. With more than one piece, chips at the top of History name each piece; pick one and its versions are listed and the canvas shows it.
    4. Want to branch off? “Start new creation from here” copies that version as the first version of a new creation (you name it — “Moon (from v3)” is suggested) and the original is untouched. “From another creation…” does the same from any version of your other creations.

    Good to know

    • Undo, Redo and Restore only ever move the piece on the canvas — restoring the film to version 3 never touches the document beside it (“Back to version 3 of the film”).
    • Where you leave Undo is kept with the creation, not the browser: open it again tomorrow, on another computer, or as someone editing it with you, and the same version is on the canvas — your next ask builds from it. Redo back to the newest and it opens on the newest again.
    • Your chat stays with the creation. New creation clears the chat and the canvas; open a creation again from My creations — later, or on another device — and the whole conversation is back, including the reply to an ask that finished after you closed the tab, and the avatar picks up where you left off. Signed-out visitors keep their chat only for the page.
    • A Camlin Connect app lives in Camlin Connect, not on the canvas, so it has no Undo or Redo yet; its toolbar has Spec history instead — every change to the Spec, who made it and when.
    • The avatar knows when you have gone back and says so, once.
  • In this creation — several pieces, side by side

    A creation can hold more than one piece: the game you are making and a document about it, a drawing and the 3D scene it became, a page and the app it was split into. Ask for something of a different kind — “write a one-page brief on this game” — and it is added to this creation beside what is on the canvas, never over it. A different kind of thing never replaces what is on the canvas; the chat says “Added a document beside your game — In this creation →”.

    Good to know

    • Each piece has its own History, Undo and Redo, its own proposal and its own share link.
    • Ctrl/⌘ 1, 2, 3 switch Code, Preview and Documents; Ctrl/⌘ Shift ] and [ step through the pieces.
    • On a phone the tabs sit inside the Canvas view and “In this creation” opens as a sheet.
    • A creation holds up to twelve pieces. Signed out, the same happens for the page you are on; sign in to keep every piece.

    What you see

    • A rail titled “In this creation” beside the canvas from the first piece — folded to a slim “In this creation · 1” strip while there is one piece (tap it to open; remembered), open once a second piece or a proposal arrives — listing every piece with its kind, version and which one is on the canvas.
    • Code · Preview · Documents tabs over the canvas: Preview is the piece, Code is its files (the tab names the file you have open), Documents lists the supporting pieces so a letter is read next to the film (with a Real / Raw toggle and rendered Mermaid diagrams), and Todos lets you run multi-step checklists in batch mode (“Run all” or “Stop after task”).
    • Under an app the rail shows its files as a tree; the file the maker is writing pulses and is read-only in Code until the turn ends.
    • A chip on the composer (“→ Feedback letter”) names the piece your next ask edits; pick another under In this creation to change it.
    • While the maker writes, a specification, a plan and a to-do list appear under Documents and can be opened before the piece is finished; a PDF you upload is listed there too.

    Each row’s menu

    • Open · Rename · History · Share this · Start new creation from here · Delete (documents).
    • Make this the main piece — for a document that outgrew the thing it was written about; the roles swap, nothing is deleted or moved, and every link keeps opening what it did.
    • Download with documents, on the main piece once the creation has any — one zip with the piece as usual and every document under docs/ (a document as .md, slides as .html, a guide as .json).
    • “New document” at the bottom starts an empty one for the maker to fill.
  • Assets — your own files and folders

    New

    Keep the sprites, sounds, textures, fonts, level maps and 3D models a creation uses in Assets, in folders, the way you would on your computer. Upload a whole folder, or drop one or a zip onto Assets — a 60-file sprite sheet or a downloaded game asset pack goes in at once with its folders kept. The maker sees the list and uses each file by its path: “use sprites/run/ for the running animation”, “put models/kart/scene.gltf on the track”.

    Good to know

    • Sign in and save the creation first; Assets belong to a saved creation, and anyone you edit together with sees and uses the same files.
    • Up to 1,000 files, 500 folders and 1 GB per creation, folders up to 8 deep. Pictures and sound up to 25 MB each, 3D models and video up to 50 MB, fonts and data files up to 8 MB. Converted models are kept under 8 MB and a million triangles.
    • Up to 1,000 files in one upload and 2,000 files (2 GB) a day per account.
    • Pictures: PNG, JPEG, WebP, GIF, SVG. Sound: MP3, WAV, OGG, M4A, FLAC. Video: MP4, WebM. Fonts: TTF, OTF, WOFF. Data: JSON, text, CSV, XML, YAML and Tiled maps. TGA, PSD and TIFF pictures need saving as PNG first.
    • Every file is checked for safety before a creation can use it; it shows “Checking…” for a moment after upload.
    • A shared link uses the creation’s Assets as they are now, so deleting a file can change what a shared creation shows.

    What you can do

    • Open “In this creation” and find Files and folders under Assets: New folder, Upload files, Upload folder.
    • Drop files, folders or a .zip onto Assets or onto a folder; a zip is unpacked here with its folders kept.
    • Drag a file or folder onto another folder to move it; use ✎ to rename and × to delete (a folder goes with everything in it).
    • Pick a file to see it — a picture, a player for sound or video, or a model turning slowly — and copy its path for an ask.
    • Big uploads show how far along they are; a file that fails can be retried on its own, and Cancel stops the rest without losing what is already in.

    3D models from a download site

    • GLB, glTF (with its .bin and textures), OBJ (with its .mtl and textures), FBX, STL and PLY all work. Upload the whole downloaded folder or zip so the textures come with it.
    • Every model is turned into one GLB with its textures inside, so the creation loads it the same way whatever you uploaded. FBX is converted in your browser while it uploads.
    • If a model needs a file that was not uploaded — a .bin, an .mtl or a texture — it says which one; upload it into the same folder and the model is converted again.
    • USDZ, Blender, Collada and other formats cannot be read yet: download the glTF or FBX version instead (most download sites offer one), or export from your 3D app as GLB.
  • Refresh and you are back where you were

    Reload the page, come back to the tab, or open the same link, and the same creation opens at the same place: the piece on the canvas, Code or Preview (Documents or Logs if you had them up), the file you were reading, and any proposal still waiting. If the maker was mid-way through an ask, it picks the turn back up and keeps showing progress.

    Good to know

    • The address bar carries the place (project, piece, view, file), so a bookmark or a copied link opens there too.
    • Signed out, the canvas comes back for as long as the tab is open.
  • Editing the code yourself

    Sometimes it is quicker to change a line than to describe it. Open Code and type. The pane says “Edited — not applied” and the file’s tab gets a dot.

    The buttons

    Apply (or Ctrl/⌘ S)
    Your edit becomes a new version. The avatar then knows: “You edited app.js (+12 −3). I can check it, explain it, or carry on from your version — just say.” Your next ask carries that summary, so the maker builds on your edit and never quietly writes those lines back.
    Revert
    Drops your edit.

    Good to know

    • If the maker lands a new version while you are mid-edit, your text is kept and the pane says the canvas moved on — Apply keeps your text, Revert takes the new version.

If it does not work:Restored the wrong version? History lists them all, superseded ones included (“Show superseded”). If a piece seems to have vanished, open In this creation — it is probably beside the one you are looking at.

PluginsSpecialists the avatar can call — Studio, Architect, Camlin Server, Camlin Companion (read-only) — and the ones still to come.

A plugin is a specialist Create can call without leaving the avatar and canvas. Studio, Architect, and Camlin Server are here. Signed in, Create can list your Camlin Server apps, create one, define a shared collection and read or write its documents, key-value entries, counters and inbox from the chat — every write after a confirm bar. Nothing publishes by itself. Camlin Drafter and Nua Workflow are next. Publishing waits on a confirm bar — Create never publishes behind your back.

  • What a plugin is

    You still talk to the same avatar. When a plugin can help, Create offers it: Camlin Studio for an avatar of you, Camlin Architect when you want a Camlin Connect app, Camlin Server when a creation needs shared data — a leaderboard, a shared counter, an inbox — or Camlin Companion, read-only for now, when you ask about your website Companion. Create lists your Server apps by name, makes one when you have none, and writes only after a confirm bar. Browser storage stays in the browser.

  • You confirm before it acts

    Reading a flow or checking a capture can happen as part of the conversation. Studio fits, library offers, and going live wait for you. A confirm bar appears first. Creating a Connect draft does not wait on that bar — it starts as soon as you ask. Cancel on a confirm bar keeps things as they were.

  • Camlin Studio

    Rolling out
    What to say:

    “Make an avatar of me from these photos.”

    Start here: sign in, attach photos or a short video, then ask Create to make a talking head of you.

  • What to say:

    “Make me a booking app for the clinic.”

    Start here: ask Create for any Camlin Connect app — from the conversation, from a document you uploaded, or from a template if you pick one. Architect builds a draft as you talk. Confirm only to go live, overwrite a later save, or change Contact.

  • Camlin Server

    Available
    What to say:

    “Which server apps do I have?” · “Add a leaderboard other people can write to.”

    Start here: sign in, then ask in the same chat — “which Camlin Server apps do I have?”, “make a shared leaderboard for this game”, “show me the top scores”. Create lists your Server apps by name, creates one when you have none, reads and writes collections, key-value entries, counters and the inbox, and sends a saved notify. Every write waits on a confirm bar. Nothing publishes by itself.

  • Camlin Companion

    Read-only preview
    What to say:

    “What Companion sites do we have?” · “How is the crawl going on our site?”

    Start here: sign in with the account your Camlin Connect organisation added in Architect, then ask “what Companion sites do we have?”. Create reads your sites, a crawl, what the Companion is missing and the install snippet. It changes nothing — setting up and changing sites stays in Architect for now.

  • Camlin Drafter

    Coming next

    Coming next — not live in Create today. This page is a stub so Help tells the truth.

  • Nua Workflow

    Coming next

    Coming next — not live in Create today. This page is a stub so Help tells the truth.

If it does not work:If a plugin did not offer itself, check you are signed in and ask for the thing, not the plugin — “make an avatar of me”, “make a booking app”, “add a shared leaderboard”. Each plugin’s page ends with what to do when something fails.

Tools the maker can reach forWeb search, a code interpreter, image generation, the 3D model maker, your attachments, and the libraries pages and games can use.

Beyond writing code and prose, the maker can look things up, run calculations and draw pictures. Which tools it gets depends on whether you are signed in.

A business owner holds out a spreadsheet; the Maker on a desk monitor looks it up, charts the table beside its panel, and draws a pictureSearchChartPicture
  • Code interpreter

    Ask for data, charts, calculations or tests and the maker runs the numbers rather than guessing. Pictures it draws land in the piece as charts; tables come back as files. Signed-in Create users only.

  • Image generation

    Ask for a picture inside a deck, document or page and the maker draws one. Attach a picture and ask for a change — “make this a watercolour”, “put a hat on the cat” — and it is used as the base. Signed-in Create users only; a few images per turn.

  • 3D model maker

    New

    Attach a picture of one object and ask for a 3D model — “make a 3D model of this” — and the maker makes a textured GLB and keeps it in the creation’s Assets under models/generated, for your 3D scenes, games and projects. Signed-in Create users only; up to 10 models a day, usually two to five minutes each. A person or character comes back ready to walk, run, wave, talk, sit and drive. How to ask and which pictures work best: What you can make → Picture to 3D model.

  • Compare: built in code vs made from a picture

    New

    Compare on a picture-made model in Assets shows the same thing built in code beside it — separate parts that move, like wheels that spin and steer — and lets you pick one, or keep the picture-made body with the built moving parts. The built one starts from the picture-made model’s shape. Keep improving looks at both from the front, side and corner and fixes the built one’s proportions, parts and colours to match, keeping its moving parts; 3 rounds runs three in a row, Stop ends early, and the versions strip lets you step back to any earlier one. Each round takes about 20 seconds and a few cents, shown under the model.

  • Your attachments

    The maker sees pictures and reads PDFs, text, CSV and JSON files you attach through the ⊕ menu, and uses them for that ask. How to attach, what types and sizes, and what the chip means are under Start here → Attach a picture or file.

  • Decision Memory precedent grounding

    New

    Documents and statements of work are dual-grounded in verified decision precedents. Clauses reference approved standards and past decisions via interactive citations ([Cite: Dec #...]). Tap any citation tag on the canvas to open a popover revealing the source record, date verified, decision context, and exact quote — ensuring contracts start from real organisational memory rather than a blank page.

  • Upload briefs, RFPs & document templates

    New

    Attach RFP briefs, requirement PDFs, or corporate Word templates (.docx) using the ⊕ options menu. The maker parses the incoming structure, preserves standard clauses and definitions, and drafts the statement of work or agreement around your established terms.

  • PDF & Word export with Audit Appendix

    New

    Export completed documents with one tap from the canvas toolbar. “Download PDF” produces a print-ready document formatted with standard page margins, clear typographic hierarchy, and a formal Audit Appendix detailing all cited decision precedents. “Download DOCX” exports an editable Word document (.docx) with native headings, tables, bullet hierarchies, and inline formatting preserved.

  • 3D prop catalogue & model picker

    New

    Search over 24 curated CC0 props across Vehicles, Nature, Furniture, Buildings, Game Items, and Animals with 128×128 isometric WebP thumbnails in the model picker. The heuristic layout engine prevents overlapping models and supports vertical surface stacking (e.g. coffee cups onto tables).

  • Libraries

    Pages, games and apps can import well-known open-source libraries straight from this site — no install, no third-party CDN. Games can have real physics, sound effects, an on-screen joystick for phones, procedurally generated levels and enemies that find their way to you; apps can have drag-and-drop, fuzzy search, CSV import, charts, QR codes and a proper maths engine; 3D scenes can have physics and lettering. The maker knows the list, looks a capability up mid-turn when it needs to, and will offer one or two of these on your first game or app. What you can build with is below, by need.

Libraries — what a page or game can build with

Served from this site under /lib, versioned and cached. Ask for a capability — “add sound effects”, “make the blocks fall with physics”, “a joystick so it works on my phone”, “find my way through the maze” — or a library by name (“use three.js”, “a d3 chart”); the maker picks the right one. A creation can remember between visits in this browser: ask it to keep a score or a note, and it uses camlin.storage; shared data other people can see is Camlin Server (its own panel). Still not possible inside the sandboxed canvas: live map tiles, real-time multiplayer, downloads from inside the piece, the camera, and fonts loaded from the web (upload the font to Assets instead) — the maker will say so and offer the nearest thing.

Game engines

  • kaplay@3001.0.192D game engineMIT
  • phaser@4.2.1Phaser 4MIT
  • pixi.js@8.20.1fast 2D sprites and gamesMIT

Physics

  • @dimforge/rapier3d-compat@0.20.03D physicsApache-2.0
  • camlin-physics@2.131.2car physics for driving gamesCamlin (first-party, part of the Create SDK)
  • cannon-es@0.20.03D physics for a three scene or gameMIT
  • matter-js@0.20.02D physics on your own canvasMIT

Sound and music

  • howler@2.2.4play audio from a data URLMIT
  • tone@15.1.22audio and musicMIT
  • zzfx@1.3.2tiny retro sound effects for games, no audio filesMIT
  • zzfxm@2.0.4chiptuneMIT

Touch and keyboard input

  • hotkeys-js@4.0.8keyboard shortcuts for appsMIT
  • nipplejs@1.0.4on-screen joystick for phonesMIT

Procedural generation and pathfinding

  • alea@1.0.1seeded random numbers (same seed, same level)MIT
  • pathfinding@0.4.18A* on a grid for enemies and mazesMIT
  • rot-js@2.2.1roguelike toolkitBSD-3-Clause
  • simplex-noise@4.0.3smooth procedural noiseMIT

3D

  • camlin-character@2.131.2animate a picture-made characterCamlin (first-party, part of the Create SDK)
  • camlin-vehicle@2.131.2drive a picture-made car or kartCamlin (first-party, part of the Create SDK)
  • three@0.186.03D scenes and gamesMIT
  • three-bvh-csg@0.0.18mesh booleansMIT
  • three-mesh-bvh@0.9.15faster raycastsMIT

Text, Markdown and maths

  • @compai/font-inter@0.0.43D text in a three sceneOFL-1.1
  • dompurify@3.4.15HTML sanitiserApache-2.0 OR MPL-2.0
  • highlight.js@11.12.0syntax highlightingBSD-3-Clause
  • katex@0.18.7maths typesettingMIT
  • marked@18.0.12Markdown → HTMLMIT

Charts and data visualisation

  • @observablehq/plot@0.6.17chartsISC
  • chart.js@4.5.1charts on a <canvas>MIT
  • d3@7.9.0data visualisationISC
  • d3-geo@3.1.1schematic mapsISC
  • vega@6.4.0Vega grammarBSD-3-Clause
  • vega-embed@7.2.0declarative chartsBSD-3-Clause
  • vega-lite@6.4.3Vega-Lite grammarBSD-3-Clause
  • world-atlas@2.0.2world shapesISC

Data: CSV, search, maths engine

  • fuse.js@7.5.0fuzzy search over a listApache-2.0
  • mathjs@15.2.0a real maths engine for calculators and convertersApache-2.0
  • papaparse@5.7.0CSV in and outMIT
  • topojson-client@3.1.0TopoJSON to GeoJSONISC

UI widgets

  • @picocss/pico@2.1.1semantic page CSSMIT
  • @tailwindcss/browser@4.3.3Tailwind classesMIT
  • alpinejs@3.17.4reactive HTMLMIT
  • htm@3.1.1JSX in tagged templatesApache-2.0
  • interactjs@1.10.28drag, resize and pinch gestures on any element (movable cards, resizable panels, a whiteboard)MIT
  • lil-gui@0.21.0a small floating panel of sliders / toggles / colour pickers to tune a scene or sketch liveMIT
  • lucide@1.47.0SVG iconsISC
  • preact@10.29.8components without a build stepMIT
  • sortablejs@1.15.7drag-and-drop reordering of lists and kanban columnsMIT

Drawing and pictures

  • p5@2.3.3creative coding sketchesLGPL-2.1
  • qrcode@1.5.4QR codes on a canvas or as SVGMIT
  • roughjs@4.6.6hand-drawn, sketchy shapes on a canvas or svgMIT

Animation

  • canvas-confetti@1.9.4confettiISC
  • gsap@3.15.0animationStandard 'no charge' licence (free for all use since 2025)
  • motion@13.4.2element animationMIT

Utilities

  • dayjs@1.11.23datesMIT
  • immer@11.1.18immutable updatesMIT
  • lodash-es@4.18.1utilitiesMIT
  • nanoid@6.0.1short idsMIT
  • zod@4.6.2schema validationMIT

List generated 2026-10-29 · 59 libraries · manifest at /lib/manifest.json

If it does not work:If a tool did not run, check you are signed in (the code interpreter, image generation and the 3D model maker need it) and say what you want plainly — “chart this”, “find today’s…”, “draw a picture of…”, “make a 3D model of this”.

Camlin Server — data other people can seeLeaderboards, guestbooks, bookings, polls, a contact form: shared data a creation keeps for everyone, set up from the chat.

Most creations only need to remember things in your own browser — a high score, a setting — and camlin.storage does that with no setup. Camlin Server is for the moment you want other people in on it: a leaderboard everyone’s scores land on, a guestbook, a booking list, a poll, a contact form that reaches your inbox. A game or app you make saves that with camlin.data, with nothing to set up: ask for a shared leaderboard and it just works on your share link. For your own Camlin Server apps, ask in the chat and Create sets them up; the page then reads and writes them through camlin.server. It is live in Create today.

Camlin Server Architecture: Creation page with visitor token connects through gateway with rate limits and schema checks to Collections, Key-Value, and Server FunctionsYour Creationcamlin.serverSDK Client BridgeVisitor TokenAuto-minted & signedTokenCamlin ServerRate Limiter10s between writesSchema ValidationStrict collection rulesDaily Caps & Queue1000/day · moderationShared Collections.put() .list() .get()KV & Counterskv.set() counter.inc()Server Functionsdeploy() & invoke()Built-in cloud backend — no server to configure
What to say to use these powers:

“Make a shared leaderboard for this game where players enter their initials.”

“Store user preferences and high scores using Camlin Server KV.”

  • Save data with no setup

    New
    What to say:

    “Add a shared leaderboard to this game.”

    “Make a guestbook where visitors leave a message.”

    “Save my progress so it is still there next time.”

    Every game and app you make can save records that everyone on its share link sees — scores, guestbook messages, votes, entries. Create writes that for you with camlin.data; there is no app to create, no id to copy and no confirm bar. Try the “Tap game with a shared leaderboard” starter on an empty canvas to see one working.

    How

    1. Ask for what should be kept: a leaderboard, a guestbook, a poll, a saved game.
    2. Play it on the canvas. Records start saving to your creation the first time you save it.
    3. Share the link. Visitors add their own records and can change or remove only theirs; you can change anything.
    4. Open Data above the canvas to see each collection, how many records it has, and delete a record.

    Example

    What to say:

    “Add a shared leaderboard to this game.”

    const scores = camlin.data.collection('scores');
    await scores.add({ name, score });
    scores.subscribe(
      { orderBy: 'score', order: 'desc', limit: 10 },
      (rows) => drawBoard(rows),
    );

    subscribe refreshes the top 10 every few seconds for everyone on the link; rows a player added have mine set to true.

    Good to know

    • Up to 20 collections per creation, records up to 32 KB of flat fields, 100 records per query.
    • Saving is limited per visitor and per creation each minute, so a runaway loop is slowed down rather than filling your space.
    • Before the creation is saved, records stay in this browser. Small private things such as settings or a personal best still use camlin.storage.
  • What Camlin Server is

    What to say:

    “Which Camlin Server apps do I have?”

    “Create a new Camlin Server project called arcade-hub.”

    A small backend you never host. A Camlin Server project (an “app” in the chat) holds, per environment (prod, and preview for work in progress): collections of JSON documents with read and write rules, key-value entries, counters, secrets, allow-hosts for outbound fetch, schedules, notify templates, signed inbound endpoints, exports (the blobs this stage exposes), functions and — on the Camlin Connect side — visitor uploads as asset records. Listing projects returns only the projects your token may see.

    • Createcamlin.server on the page · the chat plugin
    • Camlin ArchitectServer nodes on interactions and apiFlows
    • Operate · Admin Consoleproject view, usage, moderation
    1. One Camlin Server projectprod and preview environments
    2. Collections · key-value · counterssecrets · allow-hosts · schedules · endpoints · functions · assets
    Create, Camlin Architect and the Operate and Admin pages all reach the same Camlin Server project

    Good to know

    • One project can be shared with a Camlin Connect tenant when a creation is published to Camlin Connect, so a flow and a page read the same collection. Nothing here is a browser store: what only this device needs stays in camlin.storage.

    Where you use it

    • Create — a creation page calls camlin.server; signed in, you can also ask the chat to list your Server apps, make one, define a collection, and read or write documents, key-value entries, counters and the inbox — every write after a confirm bar (see Plugins → Camlin Server).
    • Camlin Architect — Server nodes on an interaction (a Connect scene) or inside an apiFlow: serverDataGet, serverDataPut, serverDataQuery, inboxPut, lookup, notify, fetchVia, scheduleCallback, and assetGet, assetSignedUrl, assetDelete for uploads. A Connect scene whose goal says “look up the caller by phone” or “save the booking” gets the matching node from the Spec compiler.
    • Operate → Server in Architect and the Admin Console’s Server page — read views of a project: collections, signed hooks, usage, and the moderation queue.
  • Ask for it in the chat

    What to say:

    “Make a shared leaderboard for this game where players enter their initials.”

    “Store user high scores and preferences with Camlin Server KV.”

    “Add a live voting poll counter that increments when users click vote.”

    “Save user profiles and achievements in a Camlin Server collection.”

    Signed in, you do not write any of this yourself. Ask for the shared thing and Create offers Camlin Server, lists your Server apps by name (or makes one when you have none), defines the collection and its rules, and writes the page code that uses it. Every write waits on a confirm bar; nothing publishes by itself.

    How

    1. “Which Camlin Server apps do I have?” — Create lists them. With none, it offers to make one for this creation. It never invents an app id.
    2. “Make a shared leaderboard for this game.” — the collection and its rules, after a confirm bar. A public write always comes with a rate limit, a field schema and a daily cap, so a page cannot be flooded.
    3. “Show me the top scores.” / “Add this score: Sam, 120.” / “Bump the play counter.” / “Leave a note in the inbox.” — reads happen in the conversation; each write shows the bar first.

    Good to know

    • The full list of what you can ask, and what each ask needs, is on the Camlin Server plugin page under Plugins.
  • From a creation page — camlin.server

    What to say:

    “Add a leaderboard other people can write to.”

    “Connect this app to Camlin Server to persist user data across devices.”

    camlin.server is on window in every creation page — no import. Every call names the projectId of an existing Camlin Server app and an optional env (prod, the default, or preview), and returns a Promise.

    1. Your pagecamlin.server.collection(…).put(…)
    2. Create pageattaches the visitor token
    3. Camlin Serverchecks the collection rules
    4. Collectiondocument stored or returned
    Your page calls camlin.server; the Create page attaches a visitor token; Camlin Server checks the collection rules and stores or returns the document

    When to use it

    Whenever a piece needs data other people can see or add to: a leaderboard, a guestbook, bookings, a poll.

    How

    1. Ask the maker for the shared thing. It uses a projectId the maker or a tool gave it — never one it invented.
    2. The page calls camlin.server.…; the sandboxed frame posts the call to the Create page, which has the network.
    3. For reads, writes, counters and fetch the Create page mints a visitor token for that project after the page loads and attaches it. The collection’s own rules then decide what a visitor may do.
    4. For delete, notify, deploy and invoke the call runs as the signed-in maker, so it works while you are signed in to Create and is refused on a share page.

    Example

    What to say:

    “Add a leaderboard other people can write to.”

    const board = camlin.server.collection('leaderboard');
    await board.put({ projectId, body: { name, score } });
    const { docs } = await board.list({
      projectId, where: { level: 3 }, limit: 10,
    });

    put returns the stored document (id, body, status, createdAt); list returns { docs }. Every call, with its limits, is under For builders at the end of this page.

    Good to know

    • Runs as a visitor: collection(name).get, .list, .put; kv.get, kv.set, kv.list; counter.inc; fetch.
    • Runs as the signed-in maker: collection(name).delete, notify, deploy, invoke.
    • The frame never holds a token of any kind; list defaults to 20 documents and takes up to 100.
  • Who may do what — your project, your token, the visitor token

    Three kinds of caller. The owner — you, signed in to Create, or the Camlin Connect tenant a project is shared with — can do everything on their own project. A project token acts for that project from a flow or a tool. A visitor token is minted per page load for public reads and writes and lasts a day; it is the only thing a share page ever uses.

    • Maker signed in to Createthe owner: everything on the project
    • Share pagea visitor token, nothing else
    1. Collection rulesread · write · rate · schema · cap
    • Allowedthe document, the value, the number
    • Refusedthe Promise rejects with the reason
    The maker signed in to Create acts as the owner; a share page holds only a visitor token; the collection rules decide what each may do

    Good to know

    • Visitor tokens are minted 30 a minute per connection. Tokens never appear in the shared page’s HTML and the frame never holds one; the Create page attaches it.

    A visitor can

    • Read a public collection (live documents only) and, on a token-read collection, their own documents.
    • Write to a public collection within its rate, schema and daily cap, and to a moderated collection (held until set live).
    • Set and read their own key-value entries; increment a counter once; fetch through an allow-host alias.

    A visitor cannot

    • Define or change a collection or rule, delete a document, read an owner collection, set secrets, allow hosts, add schedules or endpoints, write templates, send notify, deploy, invoke, read logs or usage.

    What an unauthorised call returns

    • The Promise rejects with the server’s reason: “This collection is owner-write”, “A public write needs a visitor token”, “Visitor token is for another project”, “Not your project”, “Visitors cannot delete documents”. Nothing is written. Catch it and show a plain message on the canvas.
    • Signed out on Create, deploy and invoke answer “Sign in before calling Camlin Server.”; notify and delete say the same in their own words.

If it does not work:If a call rejects, the reason on the rejected Promise is the server’s own words — Troubleshooting → “A camlin.server call rejects” decodes each one. If the chat did not offer Server, sign in and ask for the shared thing by name (“a leaderboard everyone can write to”).

Accounts, sharing and limitsStarting your free month, signing in, sharing and the library, editing together, copying from dev, daily limits, feedback.

Every new Camlin Create account starts with a free month of making. Anyone can join; each account has a daily making allowance while we watch cost and quality.

A man holds the drawing he made in Create, with its earlier versions behind it; a tag says Saved, and a share link sits beside itSavedShare link
  • Start your free month

    Choose “Start your free month” on this site (or “Sign in” → “Start your free month” inside the maker). Use the one-click sign-up button at the top of the page for your personal, work or university account, or enter your email and a password and then the 6-digit code we email you. You land in Create signed in.

    Good to know

    • Passwords need 12 characters with upper and lower case, a number and a symbol; temporary or disposable email addresses cannot be used.
  • Closed the tab before entering your code?

    Your account is waiting for you. On the sign-in page (or the sign-up page) choose “Continue where you left off”, enter your email and the password you chose, and we send a new 6-digit code — use the newest one. The same happens if you try to sign in before confirming: we tell you the email is not verified yet and take you to that step.

  • Signing in

    Sign in from the top bar: the one-click button at the top of the page, or type your email and press Continue — a company that uses single sign-on goes straight to it, everyone else to the password page with the email filled in. Pick the wrong one and we send you on to the way your account signs in. An existing Camlin Connect login works too — it becomes a Create account the first time you sign in here. Signed in, your creations save as projects with versions, you can share any of them with a link or by email, and the maker gets all of its tools.

  • Sharing a creation — and sharing Camlin Create

    One Share button, in the top bar (the violet pill; Ctrl/⌘ Shift S opens it too — on a phone it is the violet square, and it is there on the Canvas view as well). The panel starts with a choice: “This creation” or “Share Camlin Create”.

    Good to know

    • Anyone with the link can open and play it full screen on any device without an account; they never see your prompt or your email, only the first name you chose.
    • Shares are linked to you: if someone joins Camlin Create from your link, the panel and My creations show “1 person joined from this” — a count only, never who.
    • Up to 30 invite emails a day, and the same address at most once a day. Unshare from the panel to take a link down.

    Share Camlin Create

    • Your own link to the front door — anyone who signs up from it is counted to you — with Copy link, Copy message, a QR code and, on a phone, the phone’s own share sheet. It works before you sign in or make anything.

    This creation

    • Pick how the link should read: “Share this creation” puts the thing first with a small “Made with Camlin Create” footer; “Invite to Camlin Create” leads with your first name inviting them to start their free month.
    • Copy the link, or press Copy message for a ready-to-paste message — the title, a line about it, the link and “Made with Camlin Create” — for any chat room, document, email or text message; where the clipboard allows it the picture comes along.
    • Scan the QR code to open it on a phone, use Share… for the phone’s own share sheet, or type up to ten email addresses (with an optional note) and we send the invite — the title, a picture of the creation and the link.
    • When a creation holds more than one piece: “This film” (the piece on the canvas — the default) or “This creation (everything)”, which makes one link that opens with a tab for each piece. Links you shared before still open the main piece. Each link has its own picture. Email works for every choice too — the message names the piece (or the creation) it carries.
  • Work on a creation together

    Want a friend to change the thing, not just play it? On a creation you own, the Share panel’s Invite to edit choice has “Work on this together”. Copy that edit link — it looks like https://create.camlinconnect.com/create?join=… — or type one email address and we send it.

    How

    1. While you are both in it, the bar above the canvas shows who is here — a circle with each person’s initials — and says when someone is typing or their turn is running.
    2. One turn at a time: while their turn runs, type your ask anyway. It waits above the message box (“Goes after Sam’s turn”) and sends by itself once theirs lands; Cancel puts it back in the box. A to-do run waits the same way.
    3. When their turn or save lands, your canvas, files and chat update on their own — no reload. If you were in the middle of a change, you get a note with Show theirs instead, so nothing is swapped out under you.
    4. If you both save at once, nothing is lost: the second save stops and asks. Save mine on top keeps your version and leaves theirs in History; Show theirs opens it.

    Good to know

    • They must be signed in when they open it. They then edit the same creation you do. Changes show for everyone within a few seconds; if the connection drops, the page catches up by itself when it comes back.
    • The panel lists who has joined and who is still invited. Remove one person without stopping the link for everyone else.
    • They cannot delete the creation. They do not need to be in a shared team tenant. The usual share link still only lets people open or play it, with no account needed.
    • This is about building the creation together. People playing a creation — a game, a chat room — do not see each other inside it yet.
  • Post to the library — and take it down

    Signed in, the share panel’s Link tab ends with “Post to the library”. It lists on create.camlinconnect.com/library, where anyone can open it; only you can post your creations, and nobody at Camlin can post them for you.

    How

    1. Add one line about the creation and pick up to five tags.
    2. Tick the box saying it is your own work and you are happy for it to be shown publicly under the first name above — then Post.
    3. An operator checks new posts before they show (usually the same day). Edits to the creation show in the library automatically.
    4. “Remove from library” takes it out at once and your share link keeps working; unsharing or deleting the creation removes the post too.

    Good to know

    • Up to 20 creations in the library and five posts a day. If an operator holds or takes down a post, the panel tells you why in plain words.
    • Please only post what you made and have the right to share — uploaded images and files are scanned for malware before a creation can use them, and anything a visitor reports goes straight to the team.
  • Copy a creation from the development site

    If you also make things on the development site, open /import here while signed in with the same account. It lists the creations you own there; “Copy to production” brings one across as a new creation of your own — every version of every piece and the chat — and “Open in Create” opens it.

    Good to know

    • The original stays where it is. Share links, library posts, people you invited to edit, and a Camlin Connect app’s built copy do not come across; a copy is yours alone until you share it.
    • Pictures and files the maker produced travel with the piece up to 8 MB in one copy; larger ones and files you uploaded are left behind, and the row says so.
    • Copying the same creation twice gives you the same copy back; after the original changes, copying again makes a second, newer copy. Nothing is ever overwritten. Only your own creations are listed — never one you were invited to edit.
  • Daily limits

    Each account has 60 turns and about US$2 of making per day. When you reach it the avatar says so and the limit resets at midnight UTC (8 pm Eastern time in summer, 7 pm in winter). The whole service also has a daily budget — if the day’s budget is spent, making pauses for everyone until tomorrow. A small number of new accounts per connection per day keeps the door open for everyone.

  • For universities and classes

    Students and staff sign up like anyone else, with their university email. A university or a class can also have a bigger daily allowance for everyone on its email domain, with a making budget of its own so a class is never paused by the shared daily budget.

    How

    1. Sign up with your university address. If it works with the one-click sign-up button, use that; if not, enter the address, a password and the 6-digit code we email you — that works for every university.
    2. To share work with a supervisor or a marker, send a share link. It opens read-only: they can open, play and read it without an account, and cannot change it.
    3. To build together, use Invite to edit → “Work on this together”. Everyone must be signed in, and one turn runs at a time, so give each small group its own creation rather than putting a whole class on one.
    4. To ask for a class space, choose “Report a bug or idea” → Idea and tell us the university, the course, the email domain students sign in with and roughly how many students. We set the allowance up and tell you when it is on.

    Good to know

    • Only attach what you would put on a shared drive: no other people’s personal details, student records, health information or anything under a confidentiality agreement.
    • A university allowance changes your limits only. It does not share your creations with anyone.
  • First month free

    First month free — no plan, no card. If that changes it will be published here first.

  • Report a bug or an idea

    Open the account menu (the round button at the top right — there whether or not you are signed in) and choose “Report a bug or idea”. Or just say it: “send feedback to the team”, “report a bug” or “help me write feedback” opens the same form with your words filled in, before a turn is spent and without touching the canvas; “Ask the maker instead” sends the words on as a normal ask.

    How

    1. Pick Bug, Idea or Other and write what happened or what you wish it did (up to 2,000 characters).
    2. Signed in, we already know how to reach you; otherwise add your email if you would like a reply.
    3. “Include diagnostics” is on by default and sends the version, layout, theme, browser and the last error the page showed — the exact list is shown before you send, and it never includes what you said or made.

    Good to know

    • Reports go straight to the people who build Camlin Create. You can send five an hour from one connection.

If it does not work:No code arrived? Check the spam folder, then use “Continue where you left off” on the sign-in page for a fresh one. Anything about your account we have not covered — “Report a bug or idea” reaches a person.

Privacy & safetyWhat runs where, what leaves your device, what is kept, and why the avatar never hears itself.
  • Using Create from the US

    On create.camlinconnect.com your account, your creations and every version, your uploads and Assets, and the shared data a creation keeps on Camlin Server are stored in the United States (N. Virginia). Everything else on this page works the same as it does in Australia.

    Good to know

    • Allowances are in US dollars: 60 turns and about US$2 of making a day, reset at midnight UTC — 8 pm Eastern time in summer, 7 pm in winter.
    • Phone numbers and text messages for Camlin Connect apps are not switched on in the US yet. Try an app by text in Create, or in the simulator in Camlin Architect.
    • Something here works differently from what this page says? Tell us through “Report a bug or idea”.

    What still runs in Australia

    • Listening and the Camlin voices run on Camlin Speech in Sydney, and the stock voices are made in Southeast Asia (see Where speech is processed, below). A spoken reply can take a moment longer from the US than it does in Australia; typing is not affected.
    • Picture to 3D model, where it is on, sends the picture to our 3D model maker in Sydney and puts the finished model back in your creation here. The maker sleeps from 8 pm to midnight Sydney time, which is early morning on the US East Coast, so the first model then can take up to ten minutes more.
  • The canvas is a sandbox

    Everything the maker makes runs in a sandboxed frame on an opaque origin: it cannot read this page, your cookies or your session, and it cannot navigate you away. camlin.server, camlin.storage and camlin.assets are relayed through the Create page rather than called from the frame, which is why the frame never holds a token.

  • What leaves your device

    Your words (typed or transcribed), the current piece and its versions go to the maker so it can edit them. 3D captures you import do not; they stay in your browser. The preview’s logs stay in your browser too: only a short digest of the distinct errors and warnings (message, file, line, count — obvious tokens and keys masked) goes with an ask while errors are showing, and the server keeps just the counts and the first error on the turn record, never the lines.

  • Where speech is processed

    Listening (speech to text) and the Camlin voices run on Camlin Speech in Sydney, Australia; the stock voices come from a hosted speech service in Southeast Asia. That is the same wherever you use Create from, camlinconnect.com included, until US speech servers are running. Typing instead of talking keeps your words out of speech; the avatar’s spoken replies still use these voices unless you mute it.

  • What is kept

    Anonymous and invite sessions keep nothing on the server beyond the day’s usage counter. Signed-in projects, versions, shares and who you invited to edit a creation with you are stored so you can come back to them; delete a project and it is gone. Shared data a creation writes to Camlin Server lives on that project, under its owner’s rules; a visitor token identifies a page load, not a person.

  • The avatar does not hear itself

    The mic is closed while the avatar speaks, and an echo guard drops any transcript that is really the avatar’s own words coming back through the speakers. If it ever drops a real ask, the guard has a kill switch: in the browser console run localStorage.setItem('camlin.create.echoGuard', 'off') and reload. Remove the key to turn it back on.

  • Analytics

    First-party, cookieless page analytics that honour Do Not Track and Global Privacy Control. Nothing is stored on your device.

If it does not work:If you think something left your device that should not have, or a real ask was dropped as an echo, tell us through “Report a bug or idea” — the diagnostics it offers never include what you said or made.

Keyboard and voice tipsThe shortcuts, and the few phrasings that get you what you meant first time.
  • Enter

    Sends the typed ask.

  • Any key or tap

    On a fresh page, turns sound on and starts the avatar (the “Tap to start” state).

  • F

    Maximizes the canvas (and restores it). Not while you are typing in the message box.

  • Ctrl/⌘ 1 · 2 · 3 · 4

    Code · Preview · Documents · Logs on the canvas.

  • Ctrl/⌘ Z · Ctrl/⌘ Shift Z

    Undo · Redo the piece on the canvas (not while typing or in the code editor).

  • Ctrl/⌘ Shift ] · [

    Next · previous piece in the creation.

  • Ctrl/⌘ Shift S

    Share.

  • Enter · Ctrl/⌘ Enter

    Apply a proposed change while the review card has focus; Escape puts it aside.

  • Escape

    Restores a maximized canvas; leaves the full-screen 3D view; deselects the active 3D object.

  • W · E · R in 3D

    New

    Switch 3D transform gizmo modes on the canvas: W for Translate (move), E for Rotate, and R for Scale. Escape deselects the active object.

  • WASD & arrows in 3D games

    New

    Steer third-person 3D physics games with WASD or arrow keys on desktop keyboards, or virtual drag-to-steer touch controls on mobile devices.

  • Drag the seam

    The line between the avatar and the canvas has a grab handle on it: drag it, or focus it and press ← → (Shift for bigger steps), Home / End, Enter to reset. The width is remembered.

  • Ctrl/⌘ S in Code

    Applies your edit as a new version.

  • Be specific about kind

    Say “a page”, “a game”, “a deck”, “a 3D model” when you care which one you get; otherwise the maker picks.

  • Refer to the piece

    “Make it bigger”, “add a cat on the sill”, “now in blue” — the maker edits what is on the canvas.

  • Name a capability or a library

    “Add sound effects”, “real physics”, “a joystick for phones”, “use three.js”, “a d3 chart” — the maker maps it to a library on the list.

If it does not work:A shortcut not firing? Click the canvas or the page first — most of them step aside while you are typing in the message box or the code editor.

TroubleshootingNo sound, not hearing you, the wrong result, errors, limits, a 3D model built from shapes, greyed-out 3D, the Reload pill.
  • I hear nothing

    Tap the page once — browsers keep sound off until you do. Check the device is not muted. On a headset, allow audio for the site.

  • It is not hearing me

    Allow the microphone when the browser asks. If you refused earlier, click the lock or site icon in the address bar and allow it, then reload. The mic is closed while the avatar speaks — wait for it to finish or tap the stop square.

  • Lips move but no sound

    This should no longer happen. If it does, reload the page and tap once before speaking, and tell us which browser you were using.

  • The piece did not change the way I asked

    Undo, then ask again with a different word for the thing you meant. Naming the exact part or file helps it land first time.

  • A game or page shows an error

    The maker repairs a runtime error once by itself. If it is still broken, ask it to “fix the errors” or open Code and fix it yourself; Apply makes your edit a version and the avatar builds on it.

  • “You have reached today’s limit”

    Your daily turns or budget are spent. Limits reset at midnight UTC. A free account has a larger allowance than an invite link.

  • A camlin.server call rejects

    Read the reason on the rejected Promise — it is the server’s own message. “Collection not found” or “Not your project”: the projectId is wrong or the collection is not defined on it. “This collection is owner-write” or “Visitors cannot …”: the page is running as a visitor and the rule does not allow that; a share page is always a visitor. “Sign in before calling Camlin Server.” (or “… Camlin Server notify.”, “… deleting a Camlin Server document.”): deploy, invoke, notify and delete need the maker signed in to Create. “Filter … is not an indexed field”: add the field to the collection’s indexes or filter on the page. “Camlin Server is not configured on this Create deployment.”: this Create has no server connection at all.

  • “View in 3D” is greyed out or missing

    Immersive view needs a headset browser with WebXR (Vision Pro Safari, Quest browser). On a laptop the scene stays on the canvas and you can orbit it.

  • I asked for a 3D model and it was built out of shapes, or never arrived

    Ask again with the words “3D model” and say which picture — “make a 3D model of this with the 3D model maker, not in code”. The 3D model maker needs you signed in and has 10 models a day. A model can take up to ten minutes longer between 8 pm and midnight Sydney time while it wakes up; keep working and it lands in Assets under models/generated. If the model came out poorly, try a picture of the one object, whole, on a plain background, from a three-quarter view — or ask for another take.

  • A “New version — Reload” pill appeared at the top

    Camlin Create updated while this tab was open. Nothing is lost: signed in, your creations save as you go; tap Reload when the current turn has finished to get the new version. Not signed in, the canvas clears on reload — sign in first if you want to keep what is there.

  • Something else

    Tell us. Account menu → “Report a bug or idea” reaches the people who build this; the diagnostics it offers to include help us find it faster.

If it does not work:Still stuck after trying the line that matches? Send the report — say what you tried and what came back. It goes straight to the people who build Camlin Create.

Power toolsThe canvas toolbar, Live code, Logs, Convert to project, Review before apply, what changed each turn.

Things you reach for once you are building bigger pieces. One line each here — open Details on a card when you need the rest.

  • The canvas toolbar and Maximize

    A toolbar sits along the top edge of the canvas as a fixed row — always there, never over your work. Maximize (or F) fills the window with the canvas.

    Details

    Good to know

    • Code or Preview is remembered per creation. On a phone, or with Code open beside the preview, it is one compact row you can slide sideways.
    • The canvas itself never carries a bar of file names: an app’s files are listed under In this creation and on the Code view’s own tabs.
    • A built Camlin Connect app has a different row, because it has no code and its preview is a conversation: Spec · Try it · Trace tabs, Change the greeting and Add something callers can ask for as the quick asks, one Spec history icon, and Maximize — no Show code, Download or Import.
    • Maximize (or the F key) fills the window with the canvas; only then does the toolbar float over the top edge and fold to a slim pill after a couple of seconds — move the pointer, touch the canvas or tab to it and it comes back; double-tap the pill, Escape, F or the button leave Maximize. The avatar keeps its conversation and is paused while hidden. Shared pieces have the same button; there it goes full screen.

    On the row

    • The kind and name of the piece (the name you gave it under In this creation).
    • Code · Preview tabs — Documents joins once the creation has a supporting piece and Logs once the preview has logged something, each with a count.
    • Add detail and Make it harder (more under ⋯, where New document also lives).
    • Undo / Redo / History (always on the row; greyed when there is nothing to undo).
    • Import a 3D capture, Show code, Download, the 3D exports and VR where they apply, and Maximize.
  • Live — watch the code as it is written

    The “Live” switch in the top bar is on by default and remembered on this device. While the maker works, the Code view opens on the file it is writing and the text flows into it.

    Details

    Good to know

    • Switch it off and you get the small progress card alone.
    • Works on a phone (inside the Canvas view), beside the Logs pane, and while a proposal is waiting — the proposal folds to its strip so you can see the code stream.
    • Review the stream in Safari or Chrome: a browser that pauses requestAnimationFrame freezes games and colour motion; the code stream itself does not need it.

    What you see

    • The Code view’s tabs light that file, the existing tree stays, a patch is applied in place rather than shown as hunk text, the caret follows the insertion and the view follows it, and other files fill in as they finish.
    • A line above says where it is (“Writing app.js · 2 of 4 so far”, “Patching style.css”) and the steps so far — Thinking it through, Searching our libraries, the maker’s own notes, Checking and fixing.
    • When the turn lands the Preview is back — a game lands as the game — or Code, if that is what you had open.
  • Logs — what the running preview says, and “Fix the errors”

    A page, game or app logs things as it runs — console.log lines, warnings, uncaught errors, a file that failed to load, stalled frames in a game. They appear in a Logs tab beside Code | Preview | Documents (⌘/Ctrl+4) the moment something is logged, with a count of unread lines or of errors.

    Details

    How

    1. Filter by level, Copy the lines, Clear them. A “since last turn” marker shows what was logged after your last ask; a reload of the preview draws a divider so old lines are not mistaken for new.
    2. While the preview has errors, a red pill on the canvas says so (“2 errors · 1 warning”) — tap it to open Logs.
    3. Ask “Fix the errors” (on the canvas toolbar and in the tab), or make any edit while errors are showing: a short digest of the distinct errors and warnings with counts goes with the ask, so the maker reads the message, file and line and fixes the cause rather than rewriting.
    4. The progress card reads “Fixing: TypeError … at app.js:42” while it works; once the new version has run, the chat says how it went — “Fixed all 2 errors; the preview runs clean”, or “Fixed 1 of 2 errors; 1 still shows in the logs”.

    Good to know

    • A game’s one automatic repair uses the same digest.
    • Logs work with the maker off too — capture and the tab are the page’s own; only “Fix the errors” needs the maker.
  • Convert to project — split a big page into files, no maker turn

    A page or game that has grown large (roughly 75 KB and up) is hard for the maker to return whole on every small ask. “Convert to project” on the canvas toolbar splits it on this page, at no cost and without the maker rewriting a line: the styles go to style.css, the script to app.js, the rest stays in index.html with the link and script tags in place.

    Details

    How

    1. It checks itself first — the moved code is byte-for-byte the original, the preview builds, every file it references exists, the element ids the script uses are still there — and the chat lists what passed and what is left for you to try (playback, controls, chapters, phone layout).
    2. The result arrives as a proposal (next card): Apply to keep it, Discard to keep the single file.
    3. After converting, each ask changes only the files that need it.

    Good to know

    • A check that fails, or a runtime error in the first five seconds, turns Apply red and the report says which.
    • The maker suggests it when a file is getting big rather than refusing the edit.
  • Review before apply

    Edits to an app with several files, edits to a large piece (over 16 KB) and every Convert to project arrive as a proposal, not straight onto the canvas: a “Proposed — not applied” card covers the canvas until you decide. It names what happened, lists every file with what changed (“app.js changed +12 −3 · style.css new · 2 files kept”), shows the checks a conversion ran, and Show changes opens every changed line, file by file. Your work stays on its current version until you apply.

    Details
    1. You ask“split this into files”
    2. Maker writesfiles and checks
    3. Proposed — not applieda card over the canvas
    • Applybecomes the next version
    • Discardthe canvas keeps what it had
    You ask, the maker writes, a “Proposed — not applied” card covers the canvas; Apply makes it the next version, Discard keeps what you had

    The buttons

    Apply
    Makes it the next version. Enter applies while the card has focus (Ctrl/⌘ Enter too), Escape puts it aside.
    Discard
    Drops it; the canvas keeps what it had. Discard is always a tap. The turn stays in the chat either way.

    Good to know

    • Try it on the canvas puts the card aside as a strip along the bottom: Show current flips back to what you had, Show proposed back to the proposal, Review reopens the card.
    • Keep asking while a proposal is open and the maker builds on the proposal; Apply then lands the whole review as one version. Undo or History while a proposal is open drops the proposal first.
    • Tick “Always review” on the card and every turn arrives as a proposal; small edits to small pieces otherwise land as they always did.
    • A proposal keeps for seven days, per piece. Signed in, it is kept with the creation too, so a reload — or another device — finds it waiting, and Apply lands exactly the version you reviewed without sending it up again. On a phone the card fills the Canvas view.
  • What changed this turn

    While an app with several files is being written, the progress card names the file — “Writing app.js · 3 of 4”. When the turn lands, a short line under the reply says what moved: “Changed app.js and style.css; kept 2 files”, or “No files changed — kept your last version”.

    Details

    Good to know

    • Files you did not ask about are never rewritten.
    • A large file (over about 6 KB) is not retyped: the maker sends just the lines that change — the progress card and the code pane read “Patching app.js” — so a twenty-line fix to a 90 KB file takes seconds rather than minutes.
    • If a patch does not line up with the file, that file is kept as it was, the reply says so (“Could not apply the edit to app.js — kept it as it was.”) and the maker gets one more go.

If it does not work:If a proposal will not apply, read the red check on the card — it names the file. If Logs shows errors the maker cannot clear, open Code, fix the line yourself and Apply.

For builders: Camlin Server referenceEvery camlin.server call with an example, the rules, the limits and what is live — for when you are reading or writing the page code yourself.

Shared data is what turns a thing you made into a thing people use together: a leaderboard everyone’s scores land on, a guestbook, a booking list the caller and the page both see, a contact form that reaches your inbox, a function that totals the day. The maker writes all of this for you when you ask. This panel is for when you want the exact call, the rule behind a refusal, or a limit — one entry per task, each with an ask the maker understands and the code it writes.

  • Save a record — collection put

    A collection is a named list of JSON documents in one environment, with a read rule (public, owner or token) and a write rule (owner, token, moderated or public). put stores one document: give it an id to update the same record next time, or leave the id out and the server makes one.

    1. Visitor writesput({ body })
    2. Rate10 seconds between writes
    3. Schemaevery field checked
    4. Daily cap1000 a day by default
    • Stored live
    • Heldon a moderated collection
    • Refusedthe call rejects with the reason
    A visitor’s write passes the rate limit, the field schema and the daily cap; then it is stored live, held for moderation, or refused

    When to use it

    Each row is its own thing — a booking, a score, a message, an order.

    How

    1. Define the collection on the project with its rules and up to two indexed fields (the fields you will filter on): ask the chat — “make a bookings collection with bookingDate indexed” — and confirm on the bar. In Architect, Operate → Server shows what exists.
    2. From a public page, choose the write rule for it: public (with a rate limit, a field schema and a daily cap — the server refuses a public write without all three) or moderated (held until you set it live).
    3. Call put with the projectId and a body object. Only fields in the schema are accepted on a public write.

    Example

    What to say:

    “Save each booking to a bookings collection with bookingId and bookingDate.”

    const saved = await camlin.server.collection('bookings').put({
      projectId,
      id: bookingId,
      body: { bookingId, bookingDate, name, party: 4 },
    });
    // saved.id · saved.status: 'live', or 'held' when moderated

    Good to know

    • A document is 350 KB or smaller; a collection holds up to 10 000 documents; a project holds 50 MB.
    • A public write from a page: 10 seconds between writes for one visitor and for one connection by default, 1000 writes a day by default, and every field checked — a string with a maximum length or a number with a maximum; an unexpected or missing field is refused.
    • An owner-write collection refuses a visitor (“This collection is owner-write”). A moderated write lands as held; visitors see only live documents.
  • Read it back — get by id, query with where and limit

    get returns one document by id. list runs a query: a where object of field → value pairs on indexed fields, and a limit (default 20, up to 100). The reply is { docs }.

    When to use it

    Show today’s bookings, the top scores for a level, one order by its number.

    How

    1. Index the fields you filter on when the collection is defined (up to two).
    2. Call get with docId for one record, or list with where and limit for a page of them.
    3. Sort and format on the page — the query filters and limits, it does not sort.

    Example

    What to say:

    “Show today’s bookings.”

    const bookings = camlin.server.collection('bookings');
    const one = await bookings.get({ projectId, docId: bookingId });
    const { docs: today } = await bookings.list({
      projectId,
      where: { bookingDate: '2026-10-03' },
      limit: 50,
    });

    Good to know

    • A where field must be one of the collection’s indexed fields — “Filter bookingDate is not an indexed field” means it is not.
    • What a visitor sees follows the read rule: public shows every live document; token shows a visitor only their own; owner shows a visitor nothing (an empty list, or “Document not found”).
    • Documents with a TTL disappear when they expire. There is no full-text search.
  • Remember a setting — key-value — and count once — counter

    kv.set stores one value under a short key, kv.get reads it back, kv.list lists the entries. From a page these are per visitor: each visitor has their own entries, so a page can remember that person’s choices between visits without a collection. counter.inc adds one to a named tally and returns the new number.

    When to use it

    A theme or a name to remember for this visitor; a vote, a like, an “I was here” that should count each person once.

    Example

    What to say:

    “Remember the colour theme each visitor picks, and count how many people vote for a sequel.”

    await camlin.server.kv.set({ projectId, key: 'theme', value: 'dark' });
    const { value: theme } = await camlin.server.kv.get({ projectId, key: 'theme' });
    // theme === 'dark' for this visitor
    
    const { value: votes } = await camlin.server.counter.inc({
      projectId, name: 'sequel_votes',
    });
    // votes is the new total; a second inc from this visitor is refused

    Good to know

    • One increment per visitor per counter (“One increment per visitor per counter”) — a counter is a poll, not a page-view meter.
    • Keys and counter names are short identifiers; a value is 350 KB or smaller. Use a collection when each row is its own record.
    • What only this browser needs to remember stays in camlin.storage; key-value is for a value the project should keep.
  • Take a message — inbox — and tell the owner — notify

    An inbox is a collection the owner reads and visitors write to. notify sends a named template (subject and text) to the project owner’s verified email through the platform sender — it never emails the visitor and never takes an address from the page.

    When to use it

    A contact form, a “tell us what you thought” box, an order that someone should be told about.

    How

    1. Define an inbox collection (public write with a schema for name and message, or moderated) and, where you want to hear about it, a notify template on the project. A maker’s project can send only to the maker’s own verified email.
    2. The page puts each message with put. In a Camlin Connect flow the same thing is an inboxPut node, which writes to the collection named inbox unless you say otherwise.
    3. To be told: from a flow, a notify node; from Create, camlin.server.notify runs as the signed-in maker (so it works while you test in Create, not from a share page). A schedule or a signed endpoint with a notify action sends without anyone signed in.

    Example

    What to say:

    “Add a contact form that saves to my inbox and emails me.”

    await camlin.server.collection('inbox').put({
      projectId,
      body: { name, email, message },
    });
    // while signed in to Create (not on a share page):
    await camlin.server.notify({ projectId, name: 'new_message' });

    Good to know

    • notify goes through the platform sender to the owner’s verified email only; visitors cannot call it (“Visitors cannot send notify”), and it needs a template of that name (“Notify template not found”).
    • A notify schedule runs no more often than once a minute (everySeconds from 60 to 30 days).
  • Visitor uploads — file field → asset → scan → signed link

    On the Camlin Connect side a form step can take a file. The bytes land on the asset store as an asset record; the flow sees an asset id and hands on a short-lived signed link rather than the bytes.

    1. Visitor attaches a filea form step with a file field
    2. Asset record{{visitorFile.assetId}}
    3. Scanmust be clean
    4. Signed linkexpires after 15 minutes
    A visitor’s file becomes an asset record, must scan clean, and is handed on as a signed link that expires

    When to use it

    A caller sends a photo of the fault, a form asks for a document, a case needs the picture attached.

    How

    1. In Architect, give a form field the type file.
    2. The visitor attaches the file in the chat widget. It is stored as a session asset and the flow’s visitorFile variable holds id, name, mime, bytes, assetId and scan — {{visitorFile.assetId}} in any message or condition.
    3. The upload must be clean before the flow uses it: where a scanner is on, a file that is not clean is refused; where no scanner is configured the record says so, and nothing should imply the file was scanned.
    4. An assetSignedUrl node returns a link at /api/assets/<token> that lasts 15 minutes for a visitor file and never outlives the record; assetGet reads the record, assetDelete removes it.

    Example

    What to say:

    “Let the caller send a photo of the damage and attach it to the case.”

    form field  →  type: file
    message     →  "Thanks — got {{visitorFile.name}} ({{visitorFile.bytes}} bytes)"
    assetSignedUrl { assetId: {{visitorFile.assetId}} }  →  asset.url (15 minutes)
    serverDataPut { collection: 'cases', body: { photo: {{visitorFile.assetId}} } }

    Architect nodes, not page code: the file path is a Camlin Connect feature.

    Good to know

    • Visitor files are kept for 24 hours unless a flow keeps them on a record.
    • Create attachments (the ⊕ menu) are a different path: they ride on your ask, and a page reads one with camlin.assets.get('camlin-asset:<id>').
  • Functions — deploy and invoke from a creation page

    A function is your own JavaScript, stored as a version on the project and run in a separate runner — never inside Create and never inside the server process. deploy stores the files and points the alias at the new version; invoke runs whatever the alias names.

    1. deploy({ files })index.js exports handler
    2. Version storedalias moved to it
    3. invoke({ event })
    4. Runnerthe shared warm pool
    5. Resultor a job id with async: true
    deploy stores a version and moves the alias; invoke runs the alias in a separate runner and returns the result

    When to use it

    A step the page should not do itself: a total across many records, a call to an allowed host with a secret header, a check before a document is saved.

    How

    1. Sign in to Create — deploy and invoke run as the maker.
    2. Ask for the backend step. The maker writes the files; one must be index.js and it must export handler(event).
    3. camlin.server.deploy({ projectId, name, files }) — files is [{ path, content }]. Storing a version also moves the alias to it. A function name is lowercase letters, digits and underscore, starting with a letter, up to 41 characters (daily_total, not daily-total or dailyTotal); from the chat, Create lowercases a camelCase name before deploying and shows the lowercased name on the confirm bar.
    4. camlin.server.invoke({ projectId, name, event }) returns { result }. Add async: true to get { jobId } back instead and let it run on its own.

    Example

    What to say:

    “Add a function that totals the amounts I send it, and call it from the page.”

    await camlin.server.deploy({
      projectId,
      name: 'daily_total',
      files: [{
        path: 'index.js',
        content:
          'exports.handler = async (event) => ' +
          '({ total: event.amounts.reduce((a, b) => a + b, 0) });',
      }],
    });
    const { result } = await camlin.server.invoke({
      projectId,
      name: 'daily_total',
      event: { amounts: [40, 25, 60] },
    }); // result.total === 125

    Good to know

    • Source 5 MB and 200 files a version. A run gets 128 MB and 5 seconds by default.
    • The warm pool is one shared task and scales to zero after 10 minutes idle; the first call after that is slower. Paid tiers and per-app runners are not open.
    • Move the alias to an earlier version to roll back. Logs per run — time, version, where it ran (invoke, schedule, endpoint or write), success, and what the function printed — are the owner’s; visitors cannot read logs.

    What a function may call

    • camlinFetch(alias, path, headers) — the only network call, and only to an allow-host alias on the project, through the same proxy as camlin.server.fetch; a header value of secret:NAME sends a stored secret without the code seeing it.
    • Its own files, and the event it was given.

    Refused before the file is stored

    • Raw fetch, http, https and net in the source; the runner also blocks a raw fetch reached another way.
    • process.env.
    • Any dependency in package.json — the allowlist is empty, and the runner never installs packages.

    The same alias also runs

    • On a schedule with a function action (async).
    • From a signed inbound endpoint with a function action (sync, and the result comes back with the hook).
    • As writeFunction on a collection: before a document is saved, the alias runs with the collection, the id, the body and the write rule; if the handler refuses, the document is not saved. The handler returns true or { allow: true } to keep the document, { allow: true, body } to replace it, or { allow: false, reason: '…' } to refuse — the reason (one line, up to 200 characters) comes back to the writer on the 403 as “Write denied: <reason>”; with no reason it is just “Write denied”. On a public collection the rate limit and the field schema run before the hook, so a refused-by-schema or rate-limited write never runs your function. Signed in, you can set it from the chat — “run checkLap before each lap is saved” — and Create attaches writeFunction to the collection after a confirm bar, deploying the function first if it is not there yet.
  • The project’s settings — rules, secrets, allow-hosts, schedules, endpoints, exports

    Everything a project does besides holding documents is a named setting on it. No user code runs for any of these.

    Good to know

    • Who sets them: you, signed in — from the Create chat after a confirm bar (the Plugins → Camlin Server page says what each ask needs), or in Architect under Operate → Server. Visitors never can.
    • Every write to a rule, a secret, a host, a schedule or an endpoint is a change to what the project will accept from now on; reading usage changes nothing.

    What each one is

    • Public write — a write rule that lets visitors add documents, only together with a rate (default 10 seconds between writes), a field schema, and a daily cap (default 1000). Moderated holds each visitor write until the owner sets it live or rejected; the Admin Console’s Server page lists the queue.
    • Secret — a value stored by name, envelope-encrypted. Listing secrets returns the names only, never the values. A fetch header may say secret:NAME instead of carrying the value; a function never sees it.
    • Allow-host — one https origin under a short alias. camlin.server.fetch({ projectId, alias, path, headers }) and a function’s camlinFetch call only that origin: redirects are not followed, a path that leaves the origin is refused, and a reply is cached for 60 seconds.
    • Schedule — everySeconds (60 seconds to 30 days) and an action: a tick, a notify template, or a function name (run async). Not something a page calls.
    • Inbound endpoint — a signed hook other systems post to, with hmac (a signature header) or apiKey (a key header) and an action: record the body, send a notify template, start a Camlin Connect apiFlow, or run a function (sync).
    • Export — a collection to JSON or CSV, stored as a blob and read back by id. That is the blob this stage exposes; there is no separate upload for an arbitrary file on a project.
  • Limits and status

    Sizes, rates and what is live today, so the maker can say no before a call fails.

    Sizes

    • Document or key-value value 350 KB · 10 000 documents a collection · 50 MB a project · two indexed fields · query limit 100.
    • Function source 5 MB and 200 files · 128 MB and 5 seconds a run by default.

    Rates

    • Public writes 10 seconds apart per visitor and per connection, 1000 a day, unless the collection says otherwise.
    • Visitor tokens 30 a minute per connection, each good for a day. One counter increment per visitor.
    • Schedules from once a minute to once in 30 days. Fetch replies cached 60 seconds. The warm pool sleeps after 10 minutes idle.

    Scanning

    • Visitor uploads on the Camlin Connect side are scanned where a scanner is configured and refused when not clean; where none is, the asset record says not scanned. Create attachments are not virus-scanned; library posts are scanned before a creation can use them.

    Live now

    • Collections, rules, key-value, counters, secrets, allow-hosts, schedules, notify, endpoints, exports, and functions, on every environment.
    • camlin.server on a creation page: collection get / list / put / delete, kv, counter.inc, fetch, notify, deploy, invoke — with the visitor token attached by the Create page.
    • The Camlin Server chat tools for signed-in makers: list your apps, make one, define collections and rules, read and write documents, key-value entries, counters and the inbox, send a saved notify, read usage — a confirm bar on every write.
    • Server nodes in Camlin Architect (on interactions and apiFlows), Operate → Server, and the Admin Console’s Server page with the moderation queue.

    Still to come — the idea, not a date

    • A view of a Camlin Server app’s own collections in Create, with editing. Today Data above the canvas shows and deletes what a creation saves with camlin.data, and Architect’s Operate → Server shows an app’s collections.
    • Paid tiers and per-app runners for functions. Keeping a creation’s own documents and files on Camlin Server as well — today they live in the creation.

If it does not work:A rejected call carries the server’s own reason — Troubleshooting → “A camlin.server call rejects” lists them. A 400 on a name means it is not lowercase letters, digits and underscore; a 404 names the exact collection string it looked for.

Still stuck? Tell us.

What you tried and what came back is the most useful thing you can send — it goes straight to the team.

Built in Sydney, and run in the United States, by Nuamedia