@headless-three/renderer 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +201 -1
  3. package/dist/attributes.d.ts +8 -0
  4. package/dist/attributes.d.ts.map +1 -0
  5. package/dist/attributes.js +91 -0
  6. package/dist/attributes.js.map +1 -0
  7. package/dist/camera.d.ts +8 -0
  8. package/dist/camera.d.ts.map +1 -0
  9. package/dist/camera.js +53 -0
  10. package/dist/camera.js.map +1 -0
  11. package/dist/color.d.ts +5 -0
  12. package/dist/color.d.ts.map +1 -0
  13. package/dist/color.js +36 -0
  14. package/dist/color.js.map +1 -0
  15. package/dist/index.d.ts +9 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +72 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lights.d.ts +5 -0
  20. package/dist/lights.d.ts.map +1 -0
  21. package/dist/lights.js +186 -0
  22. package/dist/lights.js.map +1 -0
  23. package/dist/materials.d.ts +18 -0
  24. package/dist/materials.d.ts.map +1 -0
  25. package/dist/materials.js +268 -0
  26. package/dist/materials.js.map +1 -0
  27. package/dist/math.d.ts +14 -0
  28. package/dist/math.d.ts.map +1 -0
  29. package/dist/math.js +137 -0
  30. package/dist/math.js.map +1 -0
  31. package/dist/morphs.d.ts +22 -0
  32. package/dist/morphs.d.ts.map +1 -0
  33. package/dist/morphs.js +108 -0
  34. package/dist/morphs.js.map +1 -0
  35. package/dist/scene.d.ts +3 -0
  36. package/dist/scene.d.ts.map +1 -0
  37. package/dist/scene.js +220 -0
  38. package/dist/scene.js.map +1 -0
  39. package/dist/skinning.d.ts +15 -0
  40. package/dist/skinning.d.ts.map +1 -0
  41. package/dist/skinning.js +88 -0
  42. package/dist/skinning.js.map +1 -0
  43. package/dist/types.d.ts +313 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +4 -0
  46. package/dist/types.js.map +1 -0
  47. package/native.d.ts +178 -0
  48. package/native.js +580 -0
  49. package/package.json +83 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skinning.js","sourceRoot":"","sources":["../api/skinning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,313 @@
1
+ export type RenderOutputFormat = 'png' | 'rgba' | 'raw' | 'raw-rgba';
2
+ export interface ThreeColorLike {
3
+ r: number;
4
+ g: number;
5
+ b: number;
6
+ isColor?: boolean;
7
+ }
8
+ export interface ThreeMatrix4Like {
9
+ elements: ArrayLike<number>;
10
+ }
11
+ export interface ThreeBufferAttributeLike {
12
+ count: number;
13
+ itemSize?: number;
14
+ normalized?: boolean;
15
+ array?: ArrayLike<number>;
16
+ data?: {
17
+ array: ArrayLike<number>;
18
+ stride: number;
19
+ };
20
+ offset?: number;
21
+ getX?(index: number): number;
22
+ getY?(index: number): number;
23
+ getZ?(index: number): number;
24
+ getW?(index: number): number;
25
+ }
26
+ export interface ThreeBufferGeometryLike {
27
+ attributes?: Record<string, ThreeBufferAttributeLike | undefined>;
28
+ index?: ThreeBufferAttributeLike | null;
29
+ groups?: Array<{
30
+ start: number;
31
+ count: number;
32
+ materialIndex?: number;
33
+ }>;
34
+ drawRange?: {
35
+ start?: number;
36
+ count?: number;
37
+ };
38
+ getAttribute?(name: string): ThreeBufferAttributeLike | undefined;
39
+ morphAttributes?: Record<string, ThreeBufferAttributeLike[] | undefined>;
40
+ morphTargetsRelative?: boolean;
41
+ }
42
+ export interface ThreeTextureLike {
43
+ image?: {
44
+ data?: ArrayLike<number>;
45
+ width?: number;
46
+ height?: number;
47
+ } | Buffer | Uint8Array;
48
+ source?: {
49
+ data?: {
50
+ data?: ArrayLike<number>;
51
+ width?: number;
52
+ height?: number;
53
+ } | Buffer | Uint8Array;
54
+ };
55
+ wrapS?: number;
56
+ wrapT?: number;
57
+ }
58
+ export interface ThreeMaterialLike {
59
+ color?: ThreeColorLike;
60
+ opacity?: number;
61
+ visible?: boolean;
62
+ vertexColors?: boolean;
63
+ map?: ThreeTextureLike | null;
64
+ metalness?: number;
65
+ roughness?: number;
66
+ emissive?: ThreeColorLike;
67
+ emissiveIntensity?: number;
68
+ emissiveMap?: ThreeTextureLike | null;
69
+ normalMap?: ThreeTextureLike | null;
70
+ normalScale?: {
71
+ x: number;
72
+ y: number;
73
+ };
74
+ metalnessMap?: ThreeTextureLike | null;
75
+ roughnessMap?: ThreeTextureLike | null;
76
+ aoMap?: ThreeTextureLike | null;
77
+ aoMapIntensity?: number;
78
+ alphaTest?: number;
79
+ transparent?: boolean;
80
+ side?: number;
81
+ isMeshBasicMaterial?: boolean;
82
+ isMeshLambertMaterial?: boolean;
83
+ isMeshStandardMaterial?: boolean;
84
+ isMeshPhysicalMaterial?: boolean;
85
+ isLineBasicMaterial?: boolean;
86
+ isPointsMaterial?: boolean;
87
+ size?: number;
88
+ }
89
+ export interface ThreeBoneLike {
90
+ matrixWorld?: ThreeMatrix4Like;
91
+ }
92
+ export interface ThreeSkeletonLike {
93
+ bones?: ThreeBoneLike[];
94
+ boneInverses?: ThreeMatrix4Like[];
95
+ update?(): void;
96
+ }
97
+ export interface ThreeObject3DLike {
98
+ visible?: boolean;
99
+ children?: ThreeObject3DLike[];
100
+ isMesh?: boolean;
101
+ isSkinnedMesh?: boolean;
102
+ isLine?: boolean;
103
+ isLineSegments?: boolean;
104
+ isLineLoop?: boolean;
105
+ isPoints?: boolean;
106
+ isLight?: boolean;
107
+ isDirectionalLight?: boolean;
108
+ isPointLight?: boolean;
109
+ isSpotLight?: boolean;
110
+ isHemisphereLight?: boolean;
111
+ isAmbientLight?: boolean;
112
+ geometry?: ThreeBufferGeometryLike;
113
+ material?: ThreeMaterialLike | ThreeMaterialLike[];
114
+ matrixWorld?: ThreeMatrix4Like;
115
+ skeleton?: ThreeSkeletonLike;
116
+ bindMatrix?: ThreeMatrix4Like;
117
+ bindMatrixInverse?: ThreeMatrix4Like;
118
+ morphTargetInfluences?: number[];
119
+ morphTargetDictionary?: Record<string, number>;
120
+ color?: ThreeColorLike;
121
+ groundColor?: ThreeColorLike;
122
+ intensity?: number;
123
+ distance?: number;
124
+ decay?: number;
125
+ angle?: number;
126
+ penumbra?: number;
127
+ target?: ThreeObject3DLike & {
128
+ matrixWorld?: ThreeMatrix4Like;
129
+ };
130
+ name?: string;
131
+ uuid?: string;
132
+ castShadow?: boolean;
133
+ receiveShadow?: boolean;
134
+ /** DirectionalLight.shadow (three.js). */
135
+ shadow?: {
136
+ mapSize?: {
137
+ x?: number;
138
+ y?: number;
139
+ width?: number;
140
+ height?: number;
141
+ };
142
+ bias?: number;
143
+ normalBias?: number;
144
+ radius?: number;
145
+ camera?: {
146
+ left?: number;
147
+ right?: number;
148
+ top?: number;
149
+ bottom?: number;
150
+ near?: number;
151
+ far?: number;
152
+ };
153
+ };
154
+ }
155
+ export interface ThreeSceneLike extends ThreeObject3DLike {
156
+ isScene: true;
157
+ background?: ThreeColorLike | null;
158
+ environment?: ThreeTextureLike | null;
159
+ environmentIntensity?: number;
160
+ updateMatrixWorld?(force?: boolean): void;
161
+ }
162
+ export interface ThreeCameraLike {
163
+ isCamera: true;
164
+ projectionMatrix: ThreeMatrix4Like;
165
+ matrixWorldInverse: ThreeMatrix4Like;
166
+ matrixWorld?: ThreeMatrix4Like;
167
+ aspect?: number;
168
+ userData?: {
169
+ width?: number;
170
+ height?: number;
171
+ };
172
+ updateMatrixWorld?(force?: boolean): void;
173
+ }
174
+ export interface RenderOptions {
175
+ width?: number;
176
+ height?: number;
177
+ background?: number[] | ThreeColorLike;
178
+ format?: RenderOutputFormat;
179
+ }
180
+ export interface NativeCamera {
181
+ width?: number;
182
+ height?: number;
183
+ eye?: number[];
184
+ target?: number[];
185
+ up?: number[];
186
+ fovYDegrees?: number;
187
+ near?: number;
188
+ far?: number;
189
+ viewProjection?: number[];
190
+ cameraPosition?: number[];
191
+ }
192
+ export interface NativeSceneLight {
193
+ lightType: string;
194
+ color?: number[];
195
+ intensity?: number;
196
+ position?: number[];
197
+ direction?: number[];
198
+ distance?: number;
199
+ decay?: number;
200
+ angle?: number;
201
+ penumbra?: number;
202
+ groundColor?: number[];
203
+ /** Whether this light casts shadows (directional only for now). */
204
+ castShadow?: boolean;
205
+ /** Shadow map resolution (square). Defaults to 512. */
206
+ shadowMapSize?: number;
207
+ /** Depth bias applied when sampling the shadow map. */
208
+ shadowBias?: number;
209
+ /** Normal-offset bias (world space units) applied at receivers. */
210
+ shadowNormalBias?: number;
211
+ /** Orthographic shadow-camera frustum bounds. */
212
+ shadowCameraLeft?: number;
213
+ shadowCameraRight?: number;
214
+ shadowCameraTop?: number;
215
+ shadowCameraBottom?: number;
216
+ shadowCameraNear?: number;
217
+ shadowCameraFar?: number;
218
+ }
219
+ export interface NativeSceneMesh {
220
+ positions: number[];
221
+ indices?: number[];
222
+ normals?: number[];
223
+ colors?: number[];
224
+ color?: number[];
225
+ transform?: number[];
226
+ uvs?: number[];
227
+ texture?: Buffer;
228
+ textureWidth?: number;
229
+ textureHeight?: number;
230
+ textureWrapS?: string;
231
+ textureWrapT?: string;
232
+ metallic?: number;
233
+ roughness?: number;
234
+ emissive?: number[];
235
+ emissiveIntensity?: number;
236
+ normalMap?: Buffer;
237
+ normalMapWidth?: number;
238
+ normalMapHeight?: number;
239
+ normalScale?: number[];
240
+ metallicRoughnessTexture?: Buffer;
241
+ metallicRoughnessTextureWidth?: number;
242
+ metallicRoughnessTextureHeight?: number;
243
+ emissiveMap?: Buffer;
244
+ emissiveMapWidth?: number;
245
+ emissiveMapHeight?: number;
246
+ aoMap?: Buffer;
247
+ aoMapWidth?: number;
248
+ aoMapHeight?: number;
249
+ aoMapIntensity?: number;
250
+ alphaTest?: number;
251
+ transparent?: boolean;
252
+ side?: string;
253
+ shadingModel?: string;
254
+ topology?: string;
255
+ /** Whether this mesh casts shadows in the shadow pass. Defaults to false. */
256
+ castShadow?: boolean;
257
+ /** Whether this mesh receives shadows in the main pass. Defaults to false. */
258
+ receiveShadow?: boolean;
259
+ }
260
+ export interface NativeRenderScene {
261
+ width?: number;
262
+ height?: number;
263
+ background?: number[];
264
+ format?: string;
265
+ meshes?: NativeSceneMesh[];
266
+ lights?: NativeSceneLight[];
267
+ ambientLight?: number[];
268
+ ambientIntensity?: number;
269
+ environmentMap?: Buffer;
270
+ environmentMapWidth?: number;
271
+ environmentMapHeight?: number;
272
+ environmentMapIntensity?: number;
273
+ }
274
+ export type Color4 = [number, number, number, number];
275
+ export type Mat4 = number[];
276
+ export type Vec3 = [number, number, number];
277
+ export interface PbrProperties {
278
+ metallic?: number;
279
+ roughness?: number;
280
+ emissive?: number[];
281
+ emissiveIntensity?: number;
282
+ normalMap?: Buffer;
283
+ normalMapWidth?: number;
284
+ normalMapHeight?: number;
285
+ normalScale?: number[];
286
+ metallicRoughnessTexture?: Buffer;
287
+ metallicRoughnessTextureWidth?: number;
288
+ metallicRoughnessTextureHeight?: number;
289
+ emissiveMap?: Buffer;
290
+ emissiveMapWidth?: number;
291
+ emissiveMapHeight?: number;
292
+ aoMap?: Buffer;
293
+ aoMapWidth?: number;
294
+ aoMapHeight?: number;
295
+ aoMapIntensity?: number;
296
+ alphaTest?: number;
297
+ transparent?: boolean;
298
+ side?: string;
299
+ shadingModel?: string;
300
+ }
301
+ export interface TextureInfo {
302
+ data: Buffer;
303
+ width: number;
304
+ height: number;
305
+ wrapS?: string;
306
+ wrapT?: string;
307
+ }
308
+ export interface GeometryGroup {
309
+ start: number;
310
+ count: number;
311
+ materialIndex: number;
312
+ }
313
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../api/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /// <reference types="node" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../api/types.ts"],"names":[],"mappings":";AAAA,8BAA8B"}
package/native.d.ts ADDED
@@ -0,0 +1,178 @@
1
+ /// <reference types="node" />
2
+ export declare class NativeRenderer {
3
+ constructor()
4
+ render(scene: RenderScene, camera: Camera): Buffer
5
+ }
6
+
7
+ export interface Camera {
8
+ /** Output width in pixels. */
9
+ width?: number
10
+ /** Output height in pixels. */
11
+ height?: number
12
+ /** Camera position. Defaults to `[2.5, 1.8, 3.2]`. */
13
+ eye?: Array<number>
14
+ /** Look-at target. Defaults to `[0, 0, 0]`. */
15
+ target?: Array<number>
16
+ /** Up direction. Defaults to `[0, 1, 0]`. */
17
+ up?: Array<number>
18
+ /** Vertical field of view in degrees. Defaults to `45`. */
19
+ fovYDegrees?: number
20
+ /** Near clipping plane. Defaults to `0.01`. */
21
+ near?: number
22
+ /** Far clipping plane. Defaults to `100`. */
23
+ far?: number
24
+ /** Optional column-major 4x4 view-projection matrix in WebGPU clip space. */
25
+ viewProjection?: Array<number>
26
+ /** Camera world position `[x, y, z]` for PBR lighting. */
27
+ cameraPosition?: Array<number>
28
+ }
29
+
30
+ export declare function renderNative(scene: RenderScene, camera: Camera): Buffer
31
+
32
+ export interface RenderScene {
33
+ /** Output width in pixels. `camera.width` takes precedence when set. */
34
+ width?: number
35
+ /** Output height in pixels. `camera.height` takes precedence when set. */
36
+ height?: number
37
+ /** Clear color as `[r, g, b]` or `[r, g, b, a]`, with values in the 0..1 range. */
38
+ background?: Array<number>
39
+ /** Output format. Supported values are `"png"` (default) and `"rgba"`. */
40
+ format?: string
41
+ /** Triangle-list meshes generated by the JavaScript Three.js adapter. */
42
+ meshes?: Array<SceneMesh>
43
+ /** Scene lights. */
44
+ lights?: Array<SceneLight>
45
+ /** Ambient light color `[r, g, b]` in 0..1 range. */
46
+ ambientLight?: Array<number>
47
+ /** Ambient light intensity. Defaults to 0. */
48
+ ambientIntensity?: number
49
+ /** Optional environment map image data (equirectangular HDR/LDR, encoded or raw RGBA/Float). */
50
+ environmentMap?: Buffer
51
+ /** Environment map width in pixels (required when data is raw typed-array bytes). */
52
+ environmentMapWidth?: number
53
+ /** Environment map height in pixels (required when data is raw typed-array bytes). */
54
+ environmentMapHeight?: number
55
+ /** Environment map intensity multiplier. Defaults to 1. */
56
+ environmentMapIntensity?: number
57
+ }
58
+
59
+ export interface SceneLight {
60
+ /** Light type: `"directional"`, `"point"`, `"spot"`, or `"hemisphere"`. */
61
+ lightType: string
62
+ /** Light color `[r, g, b]` in 0..1 range. */
63
+ color?: Array<number>
64
+ /** Light intensity. */
65
+ intensity?: number
66
+ /** World-space position `[x, y, z]` (point and spot lights). */
67
+ position?: Array<number>
68
+ /** Direction `[x, y, z]` (directional and spot lights, up for hemisphere). */
69
+ direction?: Array<number>
70
+ /** Maximum range. 0 = infinite (point and spot). */
71
+ distance?: number
72
+ /** Decay exponent for distance falloff (point and spot). Defaults to 2. */
73
+ decay?: number
74
+ /** Spotlight half-angle in radians. Defaults to π/3. */
75
+ angle?: number
76
+ /** Spotlight penumbra 0..1. Defaults to 0. */
77
+ penumbra?: number
78
+ /** Hemisphere light ground color `[r, g, b]` in 0..1 range. */
79
+ groundColor?: Array<number>
80
+ /** Whether this light casts shadows (directional lights only). */
81
+ castShadow?: boolean
82
+ /** Shadow map resolution (square, pixels). Defaults to 512. */
83
+ shadowMapSize?: number
84
+ /** Depth bias in shadow-map NDC. */
85
+ shadowBias?: number
86
+ /** Normal-offset bias in world space at the receiver. */
87
+ shadowNormalBias?: number
88
+ /** Orthographic shadow-camera frustum bounds. */
89
+ shadowCameraLeft?: number
90
+ shadowCameraRight?: number
91
+ shadowCameraTop?: number
92
+ shadowCameraBottom?: number
93
+ shadowCameraNear?: number
94
+ shadowCameraFar?: number
95
+ }
96
+
97
+ export interface SceneMesh {
98
+ /** Flat xyz positions: `[x0, y0, z0, x1, y1, z1, ...]`. */
99
+ positions: Array<number>
100
+ /** Optional uint32 triangle-list indices. */
101
+ indices?: Array<number>
102
+ /** Optional per-vertex normals: `[nx0, ny0, nz0, ...]`. */
103
+ normals?: Array<number>
104
+ /** Optional per-vertex colors. Accepts one `[r,g,b,a]` color or one color per vertex. */
105
+ colors?: Array<number>
106
+ /** Mesh material color used when `colors` is omitted. */
107
+ color?: Array<number>
108
+ /** Optional column-major 4x4 model matrix. */
109
+ transform?: Array<number>
110
+ /** Optional per-vertex UV coordinates: `[u0, v0, u1, v1, ...]`. */
111
+ uvs?: Array<number>
112
+ /** Optional texture image data (raw RGBA8 bytes or encoded PNG/JPEG/WebP). */
113
+ texture?: Buffer
114
+ /** Texture width in pixels (required when `texture` is raw RGBA8 bytes). */
115
+ textureWidth?: number
116
+ /** Texture height in pixels (required when `texture` is raw RGBA8 bytes). */
117
+ textureHeight?: number
118
+ /** Texture horizontal wrap mode: `"repeat"`, `"clamp"`, or `"mirror"`. Defaults to `"clamp"`. */
119
+ textureWrapS?: string
120
+ /** Texture vertical wrap mode: `"repeat"`, `"clamp"`, or `"mirror"`. Defaults to `"clamp"`. */
121
+ textureWrapT?: string
122
+ /** Optional metallic-roughness texture (glTF convention: G=roughness, B=metallic). */
123
+ metallicRoughnessTexture?: Buffer
124
+ /** Metallic-roughness texture width (required when texture is raw RGBA8 bytes). */
125
+ metallicRoughnessTextureWidth?: number
126
+ /** Metallic-roughness texture height (required when texture is raw RGBA8 bytes). */
127
+ metallicRoughnessTextureHeight?: number
128
+ /** Metallic factor (0..1). Defaults to 0. */
129
+ metallic?: number
130
+ /** Roughness factor (0..1). Defaults to 1. */
131
+ roughness?: number
132
+ /** Emissive color `[r, g, b]` in 0..1 range. */
133
+ emissive?: Array<number>
134
+ /** Emissive intensity multiplier. Defaults to 1. */
135
+ emissiveIntensity?: number
136
+ /** Optional normal map image data (raw RGBA8 bytes or encoded PNG/JPEG/WebP). */
137
+ normalMap?: Buffer
138
+ /** Normal map width in pixels (required when `normal_map` is raw RGBA8 bytes). */
139
+ normalMapWidth?: number
140
+ /** Normal map height in pixels (required when `normal_map` is raw RGBA8 bytes). */
141
+ normalMapHeight?: number
142
+ /** Normal map scale `[x, y]`. Defaults to `[1, 1]`. */
143
+ normalScale?: Array<number>
144
+ /** Optional emissive map image data (raw RGBA8 bytes or encoded PNG/JPEG/WebP). */
145
+ emissiveMap?: Buffer
146
+ /** Emissive map width in pixels (required when `emissive_map` is raw RGBA8 bytes). */
147
+ emissiveMapWidth?: number
148
+ /** Emissive map height in pixels (required when `emissive_map` is raw RGBA8 bytes). */
149
+ emissiveMapHeight?: number
150
+ /**
151
+ * Optional ambient occlusion map image data (raw RGBA8 bytes or encoded PNG/JPEG/WebP).
152
+ * Red channel is used as the occlusion factor (Three.js / glTF convention).
153
+ */
154
+ aoMap?: Buffer
155
+ /** AO map width in pixels (required when `ao_map` is raw RGBA8 bytes). */
156
+ aoMapWidth?: number
157
+ /** AO map height in pixels (required when `ao_map` is raw RGBA8 bytes). */
158
+ aoMapHeight?: number
159
+ /** AO map intensity multiplier (0..1). Defaults to 1. */
160
+ aoMapIntensity?: number
161
+ /** Alpha test cutoff threshold (0..1). Fragments with alpha below this are discarded. */
162
+ alphaTest?: number
163
+ /** Whether the mesh is transparent (sorted back-to-front, no depth write). */
164
+ transparent?: boolean
165
+ /** Which faces to render: `"front"` (default), `"back"`, or `"double"`. */
166
+ side?: string
167
+ /**
168
+ * Shading model: `"standard"` (default PBR), `"basic"` (unlit / MeshBasicMaterial),
169
+ * or `"lambert"` (diffuse-only / MeshLambertMaterial).
170
+ */
171
+ shadingModel?: string
172
+ /** Primitive topology: `"triangles"` (default), `"lines"` (LineList), or `"points"`. */
173
+ topology?: string
174
+ /** Whether this mesh casts shadows in the shadow pass. Defaults to false. */
175
+ castShadow?: boolean
176
+ /** Whether this mesh receives shadows in the main pass. Defaults to false. */
177
+ receiveShadow?: boolean
178
+ }