summer-assets is a skill from the Summer skill library: a guide your AI agent reads when the task matches, so it builds the good version on the first try. Make game assets with Summer, no Summer Engine: find, generate and download 3D models, images, audio and video for any engine or app.
When your agent uses it
- Starting a session that has the Summer assets profile (generation tools, no engine tools)
- The person wants assets for their own engine or web app, not a game built in Summer Engine
- An asset skill ends with Summer Engine steps that this session cannot run
Install
summer setup installs every skill for your agent. To add only this one:
claude-code for your agent, such as codex or cursor. See Skills for every option.
The skill
Use this skill when the session has the Summer assets profile: the generation and asset library tools are there, the Summer Engine tools are not (nosummer_get_project_context, summer_add_node, summer_play or summer_screenshot). The person wants files for their own engine or web app. You deliver files, not scenes.
A call written area.action({...}) is one operation: use the tool summer_area_action when your client lists it, else summer_call({ op: "area.action", input: {...} }). summer_search finds any operation and its exact input.
What this session has
The loop
- Ask what the asset is for, once, in one message: the engine or app, the file format, the size or scale, the style, how many.
- Reuse first.
assets.search({ scope: "mine" }), thenassets.search({ query, scope: "all" }). Generate only when nothing fits. - Read the asset’s skill: sound effect
sound-effect, musicmusic-track, ambienceambient-bed, voicevoice-line, image or styleconcept-art, UIui-graphics, texturetileable-texture, spritessprite-sheetorpixel-art, skyskybox-panorama, 3D propprop-model, charactercharacter-model, creature or plantorganic-model, vehiclevehicle-model, modular kitenvironment-kit, animationgenerate-motion, videotrailer-shot. Follow it up to the point where the asset exists. Its Without Summer Engine section says where to stop: skip every step that imports the asset into a project or adds nodes to a scene. - Confirm before you spend. Generation uses the person’s Summer credits.
dryRun: trueon the generate call returns the estimate (credits,balance,enough) and makes nothing. Say what you will make and how many versions, and wait for a yes. - Generate, then wait. 3D, video and animation answer at once with
{ status: "running", job }: calljobs.waituntilfinishedis true. Never continue on a running job. - Use the returned id.
assets.getwith the asset id the finished job’sresultholds. Do not search by name right after a generation. - Check it. Look at the preview image or thumbnail you received. For audio, the person listens. Describe only what you actually received.
- Hand it over. Pass
outwith the folder the person named (or a file path): on the generate call, onjobs.waitfor 3D, video and animation, or onassets.getfor an asset you already have. The file is saved there and the answer giveslocalPath. Withoutout, a file made in a game project lands in its asset folder (Godotassets/, UnityAssets/Summer, UnrealContent/Summer, three.jspublic/assets). Tell the person the path and format. Connected only to Summer’s hosted server, there is noout: downloaddownloadUrlfromassets.getwith your own shell.
Formats
Each asset is a normal file in the person’s Summer library: GLB for 3D models, PNG, JPG or WebP for images, MP3 or WAV for audio, MP4 for video. GLB is Y up. Generated models are not at real-world size: give the person the target size (a door about 2 m, a person about 1.7 m). Tell them if their engine needs a conversion step, and let them choose the tool for it.Done means
- The job finished without an error.
- You saw the preview, or the person heard the sound.
- The file is where the person asked, and you told them the path and format.
Pitfalls
From a shell
No Summer MCP tools in this session? Run each one as a command; whensummer --version is missing or below 4.0, use npx -y summer-engine@latest in place of summer. Fields are flags in kebab-case (--scene-path res://main.tscn) or one --input '<json>', and summer ops describe <op> prints the exact input. The summer-cli skill has the rest.
Related skills
asset-strategy: Route any ‘I need a [thing]’ asset request to the right skill: 2D, 3D, audio, video, VFX or animation.sound-effect: Make sound effects (swings, hits, whooshes, reloads, UI): three versions to pick from, then wire them.prop-model: Generate one static 3D prop (sword, barrel, chest, lantern, statue): one object, no rig, a MeshInstance3D.concept-art: Explore art direction with 3-4 rough concept variants of a character, environment or prop.
Source:
library/skills/summer-assets/SKILL.md, rendered from summer-engine@4.3.0 on npm.
