Mới · 0.1Edit Mesh sửa topology, logic game đi theo code xuất, phòng cộng tác có phân quyền.Có gì mới
Scenegraph Studio
Render trong viewport của Scenegraph Studio: một khối hạt vàng phát sáng trên nền đen, mô phỏng bằng compute shader.

Mẫu Hạt GPU · compute shader · chụp trong Scene View, WebGPU

Scenegraph Studio 0.1

Node cho three.js

Dựng cảnh 3D cho web bằng network nối dây: geometry, vật liệu TSL, hậu kỳ, compute, animation và vật lý. Xem ngay trong viewport WebGPU, xuất ra mã three.js sạch.

Bản 0.1.0 đang kiểm thử, chưa phát hành công khai · hiện miễn phí

Sản phẩm

Một app, một máy chủ, và mã của bạn

Studio là nơi dựng cảnh. Máy chủ cộng tác là tùy chọn, bạn tự chạy. Thứ bạn mang đi là mã three.js thuần, không phụ thuộc vào Studio.

  • Desktop · Windows, macOS, LinuxScenegraph Studio

    App dựng cảnh bằng node, chạy offline. Đủ năm context: Scene, Material, Post, Compute, Game. Miễn phí trong giai đoạn thử nghiệm.

  • Tự host · Node.jsCollab Server

    Nhiều người sửa cùng một project. Phòng có chủ, mã mời, quyền biên tập hoặc chỉ xem; thay đổi được hợp nhất theo từng tham số.

  • Đầu ra · three.js r186Mã xuất ra

    Mỗi project thành một file JavaScript dùng three/webgpu và three/tsl, kèm animation và logic game nếu có. Hoặc xuất glTF/GLB.

Tính năng

Có gì trong 0.1

Mọi ảnh trên trang được chụp từ chính bản dựng của Studio. Renderer là WebGPU; máy không có WebGPU tự chuyển sang WebGL 2.

Procedural

Network View cho cả cảnh

Geometry, mesh, đèn, camera là node nối dây theo chiều dọc. 98 node scene được tạo từ mã nguồn three.js r186, nên Parameters có đúng và đủ tham số của class thật.

  • 12 node modeling: Transform, Mirror, Array, Displace, Deform, Scatter…
  • Edit Mesh: chọn điểm, cạnh, mặt; extrude, inset, chia mặt, dissolve, tới 1 triệu điểm
  • Import ảnh, HDR, glTF; xuất glTF/GLB qua gltf-validator
Giao diện Studio: Scene View với quả cầu phát sáng, Network View với 8 node của /obj, pane Parameters và timeline.
/obj · mẫu Quả cầu phát sáng
TSL

Vật liệu không cần GLSL

677 node Three Shading Language: toán, noise, UV, thời gian, ánh sáng. Nối mx_noise_float qua mix vào colorNode là có vật liệu động.

  • Tab menu tìm theo tên, có nhóm và mô tả từ tài liệu TSL
  • Subgraph với Fn, If, Switch, Loop
  • 296 hàm TSL được gọi thử tự động, không lỗi
Context /mat: uv1, color1, color2 nối vào mx_noise_float1, mix1 rồi meshStandardNodeMaterial1; Parameters liệt kê các ổ colorNode, roughnessNode.
/mat · mẫu Nghiên cứu vật liệu
Post

50 hiệu ứng hậu kỳ

Toàn bộ Post FX của three.js chạy được trên cả WebGPU và WebGL 2. Hiệu ứng cần depth, normal hay velocity được nối đầu vào bắt buộc tự động.

  • Bloom, AO, DOF, motion blur, outline, film, LUT…
  • Pass có đầu ra phụ dùng lại ở node sau
Torus knot màu xanh dương có viền sáng tím từ hậu kỳ, trên nền xám chuyển.
/img · mẫu Post, render trong viewport
GPU

Compute và hạt

Buffer, kernel và mô phỏng là node như mọi node khác. Mẫu Hạt GPU dựng sẵn hai instancedArray, hai kernel và một simulation.

  • 46 node compute
  • Kết quả đi thẳng vào cảnh và hậu kỳ
Context /ch với instancedArray1, instancedArray2, kernel1, kernel2 nối vào simulation1; viewport hiện hạt vàng.
/ch · mẫu Hạt GPU
Play

Game và vật lý

onKey nối vào applyForce, mesh nhận rigidBody. Bấm Play để chạy, Stop để trả cảnh về như cũ.

  • Vật lý Rapier 0.21, chỉ nạp khi cần
  • Va chạm hộp, cầu, viên nang, trụ, nón, convex hull; trimesh và heightfield cho vật tĩnh
  • Logic game đi kèm mã xuất ra và chạy giống nút Play
Context /gm: physicsworld1, rigidbody1, onKey1 nối applyforce1; Parameters của Rigid body.
/gm · mẫu Game vật lý
Export

Mã three.js, không runtime riêng

Đây là mã xuất từ mẫu Quả cầu phát sáng ở trên. Tên biến theo tên node; chỉ tham số khác mặc định mới được ghi.

  • Pane Code cập nhật khi bạn nối dây
  • Addon được import đúng đường dẫn three/addons
  • Animation, compute, logic game xuất kèm khi project dùng
import * as THREE from 'three/webgpu';
import { time, oscSine, color, mix, pass, add } from 'three/tsl';
import { bloom } from 'three/addons/tsl/display/BloomNode.js';

const renderer = new THREE.WebGPURenderer( { antialias: true } );
renderer.toneMapping = THREE.ACESFilmicToneMapping;
await renderer.init();

// Material graph
const time1 = time;
const oscSine2 = oscSine( time1 );
const color3 = color( 0x1f6fff );
const color4 = color( 0xff4d2e );
const mix5 = mix( color3, color4, oscSine2 );
const meshStandardNodeMaterial6 = new THREE.MeshStandardNodeMaterial( { roughness: 0.35, metalness: 0.1 } );
meshStandardNodeMaterial6.colorNode = mix5;

// Scene graph (rút gọn: đèn và camera)
const sphereGeometry7 = new THREE.SphereGeometry( 1, 64, 32 );
const mesh9 = new THREE.Mesh( sphereGeometry7, meshStandardNodeMaterial6 );

// Post graph
const pass16 = pass( scene12, perspectiveCamera13 );
const bloom17 = bloom( pass16, 0.9, 0.5, 0.55 );
const add18 = add( pass16, bloom17 );

const renderPipeline = new THREE.RenderPipeline( renderer );
renderPipeline.outputNode = add18;
renderer.setAnimationLoop( () => renderPipeline.render() );
Bỏ bớt 7 dòng khai báo đèn, scene và camera; các dòng còn lại giữ nguyên như app xuất
Quy trình

Dùng chung cho mọi context

Phần còn lại của một phần mềm desktop: animation, file, hoàn tác, bố cục pane.

Animation

  • Keyframe cho tham số, kể cả tham số đã nối dây
  • Dope sheet, Curves, tay cầm tangent Bezier
  • Clip, timeline, fps tùy chỉnh; xuất glTF animation

File và hoàn tác

  • File .sgstudio, Recent, click đúp để mở
  • Tự lưu mỗi 30 giây, khôi phục sau khi tắt đột ngột
  • 150 bước hoàn tác, còn nguyên sau khi đóng app

Desktop

  • Pane kéo thả, đổi cỡ, phóng to (Ctrl+B)
  • Preset Build, Viewport, Network, Code, Debug
  • Báo bản mới và mở trang tải; không tự cài
Tải về

Scenegraph Studio 0.1.0

Windows 64-bit, macOS Apple Silicon, Linux 64-bit. WebGPU khi máy hỗ trợ, tự chuyển sang WebGL 2 khi không.

Bản 0.1.0 đang kiểm thử, chưa phát hành công khai · hiện miễn phí