Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·part ofpackage ZeroBlender.package·originates fromworld 240544fe-7…

sceneOps

<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->

by◐Deata·posted 16d ago
What it does

sceneOps

<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->

TODO: describe this module.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

Scene arrangement for the bpy session: empties, duplicates (and linked duplicates), collections, collection instances, instances of other .zblend documents, origin_set, the 3D cursor and snapping. Installed into a session by blenderSession.

ModelAsset

install(S: ?, h: ?) → void

argtypedescription
S?
h?

dirty( ) → void

valid(o: ?) → void

argtypedescription
o?

weak( ) → void

numbered(want: ?, exists: ?) → void

Blender's numbered names: "Cube.001" -> the first free "Cube.NNN".

argtypedescription
want?
exists?

coll(name: ?, items: ?, lookup: ?, setter: ?) → void

argtypedescription
name?
items?
lookup?
setter?

members(c: ?) → void

argtypedescription
c?

allObjects(c: ?, seen: ?, out: ?) → void

argtypedescription
c?
seen?
out?

contains(parent: ?, child: ?) → void

argtypedescription
parent?
child?

isRoot(o: ?) → void

Objects created by an add operator are in the scene collection until moved.

argtypedescription
o?

usersOf(o: ?) → void

argtypedescription
o?

objectsOf(getList: ?, onLink: ?, onUnlink: ?, label: ?) → void

argtypedescription
getList?
onLink?
onUnlink?
label?

childrenOf(list: ?, label: ?, owner: ?) → void

argtypedescription
list?
label?
owner?

collProxy(c: ?) → void

argtypedescription
c?

getitem(k: ?) → void

argtypedescription
k?

setitem(k: ?, v: ?) → void

argtypedescription
k?
v?

proxyOf(c: ?) → void

argtypedescription
c?

newCollection(name: ?) → void

argtypedescription
name?

removeCollection(c: ?) → void

argtypedescription
c?

refresh( ) → void

Which objects are in the view layer: in the scene collection, or in a visible collection reachable from it. Objects only reachable through a collection instance are built (so instances have meshes to show) but hidden.

walk(c: ?) → void

argtypedescription
c?

sceneGet(k: ?) → void

argtypedescription
k?

isEmpty(o: ?) → void

argtypedescription
o?

objectGet(o: ?, key: ?) → void

argtypedescription
o?
key?

objectSet(o: ?, key: ?, v: ?) → void

argtypedescription
o?
key?
v?

resolveDoc(name: ?) → void

argtypedescription
name?

world(o: ?) → void

argtypedescription
o?

setWorld(o: ?, W: ?) → void

argtypedescription
o?
W?

selectOnly(list: ?, act: ?) → void

argtypedescription
list?
act?

addTransform(o: ?, kw: ?, allowed: ?) → void

argtypedescription
o?
kw?
allowed?

isObj(t: ?) → void

Duplicates. Object data is copied (meshes, curves, armatures) unless the duplicate is linked; materials and actions stay shared, as in Blender's defaults.

argtypedescription
t?

isShared(t: ?) → void

argtypedescription
t?

copyValue(v: ?, map: ?, memo: ?) → void

argtypedescription
v?
map?
memo?

meshNames( ) → void

duplicate(linked: ?, offset: ?) → void

argtypedescription
linked?
offset?

translateOf(kw: ?) → void

argtypedescription
kw?

selectedTops( ) → void

median(list: ?) → void

argtypedescription
list?

moveTo(o: ?, p: ?) → void

argtypedescription
o?
p?

modelOf(e: ?) → void

argtypedescription
e?

showModel(e: ?, on: ?) → void

argtypedescription
e?
on?

syncInstances(sessionRoot: ?) → void

argtypedescription
sessionRoot?

serialize(doc: ?) → void

argtypedescription
doc?

restore(doc: ?) → void

argtypedescription
doc?

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

Showing up to 3 levels deep. Open a part to see what it holds further down.

8+items
▣
module · born here
❒asset
# xform <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. --> TODO: describe this module.
▲ 0↑ born
❒
package · born here
❒asset
# ZeroBlender Blender-style modeling inside Zero. Install this package and you get the whole surface: the `.zblend` document type, the tools that edit it, the Python/bpy runtime behind them, the layer previews live in, and the workflow that drives a modeling job to the end. ## Contents | Path | What it is | |---|---| | `zblend.assetType/` | The `.zblend` document (Zero's `.blend`): editable `scene.json`, history, images, and a live `output.bundle`. Scene-instantiable, previewed, searchable. Its ref methods open and edit documents (below); `M.modules` exposes every module here to instances. | | `blender.toolbox/` | Blender MCP-compatible tools: `execute_blender_code`, `get_scene_info`, `get_object_info`, `get_viewport_screenshot`, `bpy_api_lookup`, `get_addon_status`, `compare_to_reference`. `api.json` is the implemented bpy surface. | | `modules/blenderSession` | The bpy/bmesh/mathutils session: objects, meshes, modifiers, materials, viewport, flush to the document and bundle. | | `modules/pythonParser`, `pythonRuntime` | The Python subset the scripts run in (Luau-hosted, not CPython). | | `modules/animation`, `rigging` | Armatures, pose, vertex groups, ARMATURE deform, auto weights, keyframes/actions/F-Curves, constraints, IK, drivers, NLA; clip baking. | | `modules/sceneOps` | Empties, duplicates, collections, collection instances, `zero_instance`, `origin_set`, cursor, snapping. | | `modules/curves`, `meshOps`, `polygonTopology`, `xform` | Curve/text meshing, edit-mode operators, topology and evaluation, matrix math. | | `modules/referenceCompare` | Silhouette scoring against a reference image. | | `modules/bpy`, `hardSurface`, `kestrel` | Older core geometry layer and hard-surface helpers used by the session. | | `workspace/ModelingWorkspace.scene` | Additive layer holding document previews, on render layer `modelingWorkspace` (hidden from the editor camera, drawn by screenshots). | | `model.workflow/` | Multi-pass modeling job: reference → model → critic/builder rounds → finish. | | `modeling.agentSkill/` | The `modeling` skill that starts the workflow. | ## Usage ```luau -- Make or open a document and edit it local doc = asset.create("zblend", "Lantern", { folder = "models" }) doc:run([[import bpy bpy.ops.mesh.primitive_cylinder_add(radius=0.1, depth=0.3)]]) doc:screenshot("ISO") doc:sceneInfo() doc:open() -- load as a live session, returns its name -- Place it (live: placed copies follow edits and play its clips) doc:instantiate(entity.find("Shelf")) -- Frozen copy doc:exportBundle("/zero/source/models/Lantern_v1.bundle") ``` Agents use the `blender` toolbox directly with `session="<folder>/<Name>"`, or start the `model` workflow for a full modeling job (`zero workflow start --name model --args '{"subject":"..."}'`). Documents default to `modeling/models/<name>.zblend`; user data (models, references, reports) is not part of the package.
▲ 0↑ born
backing path · ZeroBlender.package/modules/sceneOps.module

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported on this asset or on the parts this page shows. Parts it leaves out are not counted here.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.