Skip to content

Windows: scene children are never attached to their parent — capture/render produce empty frames #83

Description

@alvarovegaromero

Summary

On Windows, a project's scene children are never attached to their parent, so nothing below a <scene> renders. dapi capture returns the scene fill only (or pure black), dapi check reports the scene with no children, and the editor's canvas stays empty while the timeline still lists a child clip.

  • OS: Windows 11
  • Node: v22.21.0 · npm: 11.6.1
  • dapi / app: 0.201.0, run from a source checkout via npm run dev:desktop (Vite on :5173 + Electron)
  • Not related to footage: it reproduces with plain <rect> nodes and no media at all.

Note: this environment needed two other Windows fixes before dapi could reach the app at all (CLI chmod build failure, and the named-pipe half-close handshake). I am filing those separately — they are unrelated to this.


Repro

A minimal project, no media, no timing tricks:

export default function Project() {
  return (
    <stage background="#161616" camera={[0.3, 0, 0, 0.3, 85, 150]}>
      <scene name="Probe" width={1920} height={1080} fill="#FF00FF" active>
        <sequence name="Lay">
          <rect x={200} y={200} width={400} height={300} fill="#00FF00" start={0} end={5} />
        </sequence>
      </scene>
    </stage>
  );
}
dapi open <dir>

dapi check <sceneId>
# {"stats":{"nodes":1,"byKind":{"scene":1},"depth":0,"duration":16},
#  "issues":[{"code":"no-visuals","severity":"error",
#             "message":"No visual content anywhere in the subtree — every frame renders empty"}]}

nodes is 1: the <sequence> and <rect> are not in the scene's subtree.

dapi capture <sceneId> -t 1 -o ./out

The frame comes back as the scene fill only (magenta here; pure black in the real project). The child rect never draws. I bisected this with a plain white 400×300 rect on top of a black scene — also absent — so it is not about which element or its props.

In the editor itself the project opens, the timeline shows the Lay clip, the ruler runs, but the canvas is empty (no scene frame at all).

What the reconciler receives is correct

Instrumenting insertNode in packages/reconciler/src/renderer.ts shows Solid's universal renderer asking for exactly the right shape:

[insertNode] sequence <- rect
[insertNode] scene <- sequence
[insertNode]  <- scene        (stage has no tag)
[insertNode]  <- 

So the child→parent insertion is requested correctly and in the right order, but the parent link never lands in the world (ChildOf), and anything below a scene is consequently invisible/culled from the render.

Secondary symptom

Remounting the project (edit a project file while it is open) additionally throws in the console:

Uncaught (in promise) Error: useEditorApi must be used within EditorApiProvider
  (http://localhost:5173/src/utils/common.ts:3)

After that the CLI can no longer resolve any node id (No such node: "<stamp>"), i.e. the editor session looks stale. This may be a separate issue from the missing parent links, or a consequence of it — reporting it because it appears in the same session.

Impact

With this, the agent workflow cannot work on Windows at all: capture (the documented verification tool) produces empty frames, and by extension an export would too. check also misreports, since it walks the same subtree.

Happy to test a fix — the checkout is local and I can rebuild/restart quickly.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions