Skip to content

About

Preview and lint Godot .tscn scenes in VS Code or the browser, no Godot install required. react-three-fiber renderer, scene-tree inspector, and a .tscn linter.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

567 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TextScene Inspector

CI License: MIT

TextScene Inspector renders Godot .tscn scenes in 3D and 2D from the text alone, without Godot.

Try it: vortiago.github.io/textscene-inspector

The VS Code extension previewing Godot's isometric dungeon demo beside its .tscn source

Get it

Tool Get it Guide
VS Code extension (desktop and vscode.dev) Marketplace Extension README
Web previewer Open in the browser Web guide
CLI linter for .tscn and .tres npm install --global @textscene/linter Linter README
Language server for any editor npm install --global @textscene/lsp Language server README
.tscn parser for Node and the browser npm install @textscene/tscn Parser README
Scene renderer for a React app npm install @textscene/renderer Renderer README

Dev edition, with the test scenes: textscene-inspector.pages.dev.

What it renders

All 240 of Godot 4.6.3's instantiable node types are parsed and linted, and most render. The parity gallery lists what renders and where it differs from Godot.

An AnimationPlayer plays its clips in the preview, skinned glTF meshes included. Here the enemy from Godot's 3D platformer demo plays its walk clip:

The VS Code preview playing the 3D platformer enemy's walk animation

Build from source

Requires Node.js 24+ and pnpm 9+ (on Windows: winget configure scripts/winget-dev-setup.yaml).

pnpm install
pnpm build
pnpm dev:web                                # web previewer on localhost
pnpm --filter textscene-inspector package   # VS Code .vsix
pnpm build:linter                           # CLI linter, then: pnpm lint:tscn <files>

pnpm blocks every dependency's preinstall, install and postinstall: the root package.json sets pnpm.onlyBuiltDependencies to [], so only a name on that list runs a script. The root's own prepare and postinstall (git hooks, demo vendoring) are root-project scripts and still run. If a dependency needs a build step, add its name to that list, and pnpm check:dep-scripts will fail on any package outside it.

Install a .vsix with Extensions: Install from VSIX….

Scripts

Command Does
pnpm build Build all packages
pnpm build:site Build the dev edition
pnpm build:pages Build the public edition, without dev content
pnpm build:linter Build the CLI linter
pnpm build:lsp Build the tscn-lsp language server
pnpm build:tscn Build the @textscene/tscn parser package
pnpm build:renderer Build the @textscene/renderer package
pnpm lint:tscn <paths> Lint .tscn and .tres paths
pnpm test Unit tests
pnpm test:visual Golden images, exact pixel match
pnpm test:visual:update Rewrite the golden images
pnpm test:visual:measure <logs> Refresh the scene seconds that balance the CI shards, from gh run view --log output
pnpm test:perf Work budgets: each budget scene's draw calls and render step runs per frame, against scripts/perf/budgets.json
pnpm test:perf:update Rewrite the work budgets from a run
pnpm test:gpu The sky layer passes in headless Chromium: a uniform sky keeps its colour, and no layer goes below black
pnpm test:renderer-consumer The packed @textscene/renderer in a plain Vite React app: it builds and renders a scene in headless Chromium
pnpm test:vscode:csp The preview draws in the real VS Code webview, under its CSP
pnpm --filter textscene-inspector test:integration VS Code integration tests
TEXTSCENE_VSCODE_VERSION=min pnpm --filter textscene-inspector test:integration The same tests on the oldest VS Code that engines.vscode accepts
pnpm vsc:package && pnpm --filter textscene-inspector test:installed The packaged .vsix in a clean VS Code: activation, commands, lint and preview
pnpm --filter textscene-inspector test:web The browser build in VS Code for the Web, as vscode.dev runs it: activation, commands, lint, Outline and the preview tab
pnpm test:vscode:web-preview In VS Code for the Web, a local folder's scene previews from the editor title button: the tree lists the root and the viewport paints. Run it after test:web, which builds the web bundle
pnpm check The pre-push checks, for every change since origin/main, uncommitted files included
pnpm lint ESLint
pnpm format Prettier
pnpm format:check Prettier check, as in CI
pnpm type-check Type check
pnpm clean Remove build output

Documentation

License

MIT

About

Preview and lint Godot .tscn scenes in VS Code or the browser, no Godot install required. react-three-fiber renderer, scene-tree inspector, and a .tscn linter.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages