JavaScript 3D Library.
This report summarizes scanner evidence for mrdoob/three.js, a JavaScript project with 117,256 GitHub stars. SynthScan examined 1,115,637 lines of code across 4449 source files, recording 574 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 1.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 510 finding(s).
Are imports declared and package/API names verified? 64 finding(s).
Are wrappers, guards, and repeated structures necessary? 363 finding(s).
Which changes need focused human review? 574 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 574 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | test/unit/addons/utils/unwrapUVs.tests.js | 408 | assert.ok( record.mesh.geometry.attributes.uv1.array.every( value => value === 0 ) ); | CODE |
| CRITICAL | test/unit/addons/utils/unwrapUVs.tests.js | 450 | assert.ok( result.meshes[ 0 ].mesh.geometry.attributes.uv1.array.every( value => value === 0 ) ); | CODE |
| CRITICAL | test/unit/addons/utils/unwrapUVs.tests.js | 468 | assert.ok( result.meshes[ 1 ].mesh.geometry.attributes.uv1.array.every( value => value === 0 ) ); | CODE |
| CRITICAL | test/unit/addons/postprocessing/GTAOPass.tests.js | 32 | assert.deepEqual( pass.gtaoMaterial.uniforms.resolution.value.toArray(), [ 64, 48 ], 'AO resolution is updated' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 14 | this.guide.dom.sidebar.classList.add( 'open' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 20 | this.guide.dom.sidebar.classList.remove( 'open' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 52 | this.guide.dom.vResizer.classList.add( 'collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 62 | this.guide.dom.vResizer.classList.remove( 'collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 78 | this.guide.dom.vResizer.classList.add( 'editor-collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 83 | this.guide.dom.vResizer.classList.remove( 'editor-collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 148 | this.guide.dom.hResizer.classList.remove( 'collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 176 | this.guide.dom.hResizer.classList.add( 'collapsed' ); | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 289 | this.guide.dom.vResizer.classList.add( 'collapsed' ); | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 294 | this.guide.dom.vResizer.classList.remove( 'collapsed' ); | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 300 | this.guide.dom.vResizer.classList.add( 'editor-collapsed' ); | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 305 | this.guide.dom.vResizer.classList.remove( 'editor-collapsed' ); | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 319 | this.guide.dom.hResizer.classList.add( 'dragging' ); | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 327 | if ( this.guide.dom.vResizer.classList.contains( 'collapsed' ) || this.guide.dom.vResizer.classList.contains( 'editor | CODE |
| CRITICAL⚡ | tsl/js/managers/LayoutManager.js | 329 | this.guide.dom.vResizer.classList.add( 'dragging' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 379 | this.guide.dom.hResizer.classList.remove( 'dragging' ); | CODE |
| CRITICAL | tsl/js/managers/LayoutManager.js | 380 | this.guide.dom.vResizer.classList.remove( 'dragging' ); | CODE |
| CRITICAL | tsl/js/managers/SearchManager.js | 292 | this.guide.dom.tocList.classList.remove( 'search-active' ); | CODE |
| CRITICAL | tsl/js/managers/SearchManager.js | 311 | this.guide.dom.tocList.classList.add( 'search-active' ); | CODE |
| CRITICAL | tsl/js/managers/SearchManager.js | 347 | const query = this.guide.dom.searchInput.value.trim(); | CODE |
| CRITICAL | tsl/js/managers/SearchManager.js | 523 | this.guide.dom.searchContainer.classList.add( 'focused' ); | CODE |
| CRITICAL | tsl/js/managers/SearchManager.js | 532 | this.guide.dom.searchContainer.classList.remove( 'focused' ); | CODE |
| CRITICAL | tsl/js/managers/PlaygroundManager.js | 23 | this.guide.dom.playgroundBtn.classList.toggle( 'active', active ); | CODE |
| CRITICAL | tsl/js/managers/PlaygroundManager.js | 76 | this.guide.dom.hResizer.classList.add( 'collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/PlaygroundManager.js | 86 | this.guide.dom.hResizer.classList.remove( 'collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/PlaygroundManager.js | 139 | this.guide.dom.hResizer.classList.add( 'collapsed' ); | CODE |
| CRITICAL | tsl/js/managers/PlaygroundManager.js | 147 | this.guide.dom.hResizer.classList.remove( 'collapsed' ); | CODE |
| CRITICAL | examples/webgl_volume_perlin.html | 273 | mesh.material.uniforms.cameraPos.value.copy( camera.position ); | CODE |
| CRITICAL | examples/webgl_texture3d_partialupdate.html | 358 | mesh.material.uniforms.cameraPos.value.copy( camera.position ); | CODE |
| CRITICAL | examples/webgl_volume_cloud.html | 308 | mesh.material.uniforms.cameraPos.value.copy( camera.position ); | CODE |
| CRITICAL | examples/webgl_lights_sunlight.html | 91 | sky.material.uniforms.sunPosition.value.copy( sunLight.position ); | CODE |
| CRITICAL | examples/webgl_volume_instancing.html | 220 | this.material.uniforms.cameraPos.value.copy( camera.position ); | CODE |
| CRITICAL | examples/jsm/inspector/tabs/Memory.js | 43 | this.memoryStats.domElement.firstChild.classList.add( 'no-hover' ); | CODE |
| CRITICAL | examples/jsm/postprocessing/GTAOPass.js | 157 | this.gtaoMaterial.uniforms.resolution.value.set( this.width, this.height ); | CODE |
| CRITICAL | examples/jsm/postprocessing/GTAOPass.js | 174 | this.pdMaterial.uniforms.resolution.value.set( this.width, this.height ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 256 | this.gtaoMaterial.uniforms.resolution.value.set( width, height ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 257 | this.gtaoMaterial.uniforms.cameraProjectionMatrix.value.copy( this.camera.projectionMatrix ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 258 | this.gtaoMaterial.uniforms.cameraProjectionMatrixInverse.value.copy( this.camera.projectionMatrixInverse ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 260 | this.pdMaterial.uniforms.resolution.value.set( width, height ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 261 | this.pdMaterial.uniforms.cameraProjectionMatrixInverse.value.copy( this.camera.projectionMatrixInverse ); | CODE |
| CRITICAL | examples/jsm/postprocessing/GTAOPass.js | 365 | this.gtaoMaterial.uniforms.sceneBoxMin.value.copy( box.min ); | CODE |
| CRITICAL | examples/jsm/postprocessing/GTAOPass.js | 366 | this.gtaoMaterial.uniforms.sceneBoxMax.value.copy( box.max ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 522 | this.gtaoMaterial.uniforms.cameraProjectionMatrix.value.copy( this.camera.projectionMatrix ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 523 | this.gtaoMaterial.uniforms.cameraProjectionMatrixInverse.value.copy( this.camera.projectionMatrixInverse ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 524 | this.gtaoMaterial.uniforms.cameraWorldMatrix.value.copy( this.camera.matrixWorld ); | CODE |
| CRITICAL⚡ | examples/jsm/postprocessing/GTAOPass.js | 529 | this.pdMaterial.uniforms.cameraProjectionMatrixInverse.value.copy( this.camera.projectionMatrixInverse ); | CODE |
| CRITICAL | examples/jsm/postprocessing/RenderPixelatedPass.js | 133 | this._fsQuad.material.uniforms.resolution.value.set( x, y, 1 / x, 1 / y ); | CODE |
| CRITICAL | examples/jsm/loaders/AMFLoader.js | 159 | unit = node.documentElement.attributes.unit.value.toLowerCase(); | CODE |
| CRITICAL | examples/jsm/lines/Wireframe.js | 100 | this.material.uniforms.resolution.value.set( _viewport.z, _viewport.w ); | CODE |
| CRITICAL | examples/jsm/lines/LineSegments2.js | 426 | this.material.uniforms.resolution.value.set( _viewport.z, _viewport.w ); | CODE |
| CRITICAL | examples/jsm/helpers/LightProbeGridHelperWebGL.js | 204 | this.material.uniforms.probesResolution.value.copy( probes.resolution ); | CODE |
| CRITICAL | editor/js/libs/codemirror/codemirror.js | 8916 | return this.cm.display.wrapper.ownerDocument.getSelection() | CODE |
| CRITICAL | src/renderers/webgl/WebGLBackground.js | 142 | boxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( scene.backgroundRotatio | CODE |
| CRITICAL | src/renderers/webgl/WebGLBackground.js | 146 | boxMesh.material.uniforms.backgroundRotation.value.premultiply( _m ); | CODE |
| CRITICAL | src/renderers/webgl/WebGLBackground.js | 216 | planeMesh.material.uniforms.uvTransform.value.copy( background.matrix ); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/addons/utils/GaussianSplatTestUtils.js | 11 | function getSphericalHarmonicsCoefficientLocation( coefficient ) { | CODE |
| LOW | test/unit/addons/utils/GaussianSplatTestUtils.js | 29 | function packSphericalHarmonicsBand( source, count, degree ) { | CODE |
| LOW | test/unit/addons/utils/GaussianSplatTestUtils.js | 61 | function unpackSphericalHarmonicsBand( packed, count, degree ) { | CODE |
| LOW | test/unit/utils/qunit-utils.js | 178 | function checkGeometryJsonRoundtrip( geom ) { | CODE |
| LOW | test/unit/src/core/Raycaster.tests.js | 12 | function checkRayDirectionAgainstReferenceVector( rayDirection, refVector, assert ) { | CODE |
| LOW | test/unit/src/geometries/EdgesGeometry.tests.js | 38 | function createIndexedBufferGeometry( vertList, idxList ) { | CODE |
| LOW | tsl/js/code/CodeRunner.js | 165 | function processExportDeclarations( code ) { | CODE |
| LOW | tsl/js/utils/CodeEditorUtils.js | 104 | function generateThreeDeclarations( THREE ) { | CODE |
| LOW | tsl/js/utils/CodeEditorUtils.js | 192 | function generateAddonDeclarations( ADDONS_TSL_IMPORTS ) { | CODE |
| LOW | manual/resources/prettify.js | 375 | function allowAnywhereFoldCaseAndRenumberGroups(regex) { | CODE |
| LOW | manual/resources/prettify.js | 1181 | function recombineTagsAndDecorations(job) { | CODE |
| LOW | manual/resources/threejs-align-html-elements-to-3d.js | 134 | function resizeCanvasToDisplaySize( canvas, pixelRatio = 1 ) { | CODE |
| LOW | manual/resources/threejs-materials.js | 83 | function makeStandardPhysicalMaterialGrid( elem, physical, update ) { | CODE |
| LOW | manual/resources/threejs-fog.js | 129 | function createLightDarkFogUpdater( fog ) { | CODE |
| LOW | manual/examples/multiple-scenes-v3.html | 128 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/custom-buffergeometry-cube.html | 157 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/picking-raycaster-complex-geo.html | 100 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/picking-raycaster-complex-geo.html | 177 | function getCanvasRelativePosition( event ) { | CODE |
| LOW | manual/examples/shadows-fake.html | 149 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/debug-js-params.html | 173 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/scenegraph-car.html | 101 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/load-gltf-animated-cars.html | 237 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/picking-gpu.html | 133 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/picking-gpu.html | 246 | function getCanvasRelativePosition( event ) { | CODE |
| LOW | manual/examples/textured-cube-6-textures.html | 68 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/load-obj-wat.html | 113 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/cameras-perspective.html | 163 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/lots-of-objects-multiple-data-sets.html | 366 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/lots-of-objects-multiple-data-sets.html | 403 | function requestRenderIfNotRequested() { | CODE |
| LOW | manual/examples/voxel-geometry-merged.html | 97 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/voxel-geometry-merged.html | 134 | function requestRenderIfNotRequested() { | CODE |
| LOW | manual/examples/load-obj-auto-camera-xz.html | 155 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/tips-screenshot-bad.html | 99 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/offscreencanvas-cubes.js | 61 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/multiple-scenes-selector.html | 152 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/textured-cube-adjust.html | 137 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/indexed-textures-random-colors.html | 370 | function getCanvasRelativePosition( event ) { | CODE |
| LOW | manual/examples/indexed-textures-random-colors.html | 427 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/indexed-textures-random-colors.html | 467 | function requestRenderIfNotRequested() { | CODE |
| LOW | …ual/examples/scenegraph-sun-earth-moon-axes-grids.html | 179 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/responsive-hd-dpi.html | 82 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/background-v01.html | 167 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/indexed-textures-picking-debounced.html | 403 | function getCanvasRelativePosition( event ) { | CODE |
| LOW | manual/examples/indexed-textures-picking-debounced.html | 413 | function recordStartTimeAndPosition( event ) { | CODE |
| LOW | manual/examples/indexed-textures-picking-debounced.html | 491 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/indexed-textures-picking-debounced.html | 531 | function requestRenderIfNotRequested() { | CODE |
| LOW | manual/examples/game-load-models.html | 203 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/voxel-geometry-separate-cubes.html | 117 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/voxel-geometry-separate-cubes.html | 154 | function requestRenderIfNotRequested() { | CODE |
| LOW | manual/examples/scenegraph-sun-earth-moon.html | 97 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/shadows-point-light.html | 225 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | …xamples/voxel-geometry-culled-faces-with-textures.html | 338 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | …xamples/voxel-geometry-culled-faces-with-textures.html | 375 | function requestRenderIfNotRequested() { | CODE |
| LOW | manual/examples/align-html-to-3d.html | 129 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/offscreencanvas-w-orbitcontrols.html | 75 | function makeSendPropertiesHandler( properties ) { | CODE |
| LOW | manual/examples/offscreencanvas-w-orbitcontrols.html | 118 | function filteredKeydownEventHandler( event, sendFn ) { | CODE |
| LOW | manual/examples/load-gltf-car-path-fixed.html | 238 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/webxr-point-to-select.html | 223 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/billboard-trees-static-billboards.html | 202 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| LOW | manual/examples/shadertoy-as-texture.html | 127 | function resizeRendererToDisplaySize( renderer ) { | CODE |
| 303 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/utils/console-wrapper.js | 1 | // This easy console wrapper introduces the logging level to console for | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLUtilsMisc.tests.js | 81 | // pole singularity (see the dedicated pole test below for why the | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLUtilsMisc.tests.js | 261 | COMMENT | |
| LOW | test/unit/src/nodes/tsl/TSLUtilsMisc.tests.js | 301 | // matrix. | COMMENT |
| LOW | …st/unit/src/nodes/tsl/TSLColorAdjustmentExtra.tests.js | 21 | QUnit.module( 'color adjustment (extra)', () => { | COMMENT |
| LOW | …st/unit/src/nodes/tsl/TSLColorAdjustmentExtra.tests.js | 61 | // result is simply color*2. | COMMENT |
| LOW | test/unit/src/nodes/tsl/GPUBarriers.tests.js | 81 | const output = instancedArray( 1, 'float' ); | COMMENT |
| LOW | …st/unit/src/nodes/tsl/TSLColorSpaceConversion.tests.js | 1 | import { vec4, convertColorSpace, workingToColorSpace, colorSpaceToWorking, sRGBTransferEOTF, sRGBTransferOETF } from 't | COMMENT |
| LOW | test/unit/src/nodes/tsl/GPUWorkgroupAtomic.tests.js | 21 | // (`workgroupArray()`, `.toAtomic()`, `atomicAdd()`, `workgroupBarrier()`) -- | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLMath.tests.js | 161 | assert.closeAbs( PI, float( Math.PI ), 1e-6, 'PI constant' ); | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLMath.tests.js | 181 | COMMENT | |
| LOW | test/unit/src/nodes/tsl/gpu-raw-test-utils.js | 1 | // | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLDepthConversion.tests.js | 1 | import { | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLLogicBitwise.tests.js | 1 | import { | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 1 | // | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 21 | // | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 41 | // chooses to pay for it -- a plain gpuTest scalar/vector assertion and a | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 481 | // read back as their zero-initialized default -- not just `actual`, since | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 501 | // into both `gpuTest` and `gpuFuzzTest`. | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 621 | // callback's own comment) so every rebuild embeds the same literal | COMMENT |
| LOW | test/unit/src/nodes/tsl/gpu-test-utils.js | 821 | node.message = message; | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLPacking.tests.js | 101 | // dot(xy, xy) == 0 -> z == 1 (straight up). | COMMENT |
| LOW | test/unit/src/nodes/tsl/GPUSubgroup.tests.js | 21 | // hardware/driver behavior here. | COMMENT |
| LOW | test/unit/src/nodes/tsl/GPUSubgroup.tests.js | 41 | // as a closed-form function of (laneId, groupSize) computed independently | COMMENT |
| LOW | test/unit/src/nodes/tsl/GPUAtomicsStorage.tests.js | 1 | import { | COMMENT |
| LOW | …t/unit/src/nodes/tsl/TSLBSDFLightingRemainder.tests.js | 281 | COMMENT | |
| LOW | …t/unit/src/nodes/tsl/TSLBSDFLightingRemainder.tests.js | 361 | gpuTest( 'LTC_Evaluate() and LTC_Evaluate_Volume() both produce correct, independent results when called in the SAME | COMMENT |
| LOW | test/unit/src/nodes/tsl/GPUComputeBuiltins.tests.js | 1 | import { | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLVectorMatrix.tests.js | 81 | gpuTest( 'mat3(a,b,c,...) 9-scalar constructor takes ROW-major arguments (like Matrix3.set(), NOT GLSL\'s own column- | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLVectorMatrix.tests.js | 161 | gpuTest( 'mat3(vec3, vec3, vec3) is COLUMN-major (GLSL-native), the OPPOSITE convention from mat3(9 scalars) (row-maj | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLRotate.tests.js | 41 | // per-axis matrices identically. These two tests close that gap by | COMMENT |
| LOW | test/unit/src/nodes/tsl/TSLBRDF.tests.js | 141 | COMMENT | |
| LOW | manual/resources/threejs-lesson-utils.js | 81 | // maybe there is another way. Originally I used `position: fixed` | COMMENT |
| LOW | manual/resources/prettify.js | 1 | // Copyright (C) 2006 Google Inc. | COMMENT |
| LOW | manual/resources/prettify.js | 901 | } | COMMENT |
| LOW | manual/resources/prettify.js | 921 | // $ echo \$# | COMMENT |
| LOW | manual/resources/prettify.js | 1581 | if (!nested) { | COMMENT |
| LOW | manual/examples/game-conga-line-w-notes.html | 261 | COMMENT | |
| LOW | manual/examples/game-conga-line.html | 261 | COMMENT | |
| LOW | manual/examples/game-player-input.html | 221 | model.animations = animsByName; | COMMENT |
| LOW | manual/examples/resources/editor.js | 981 | } | COMMENT |
| LOW | manual/pages/indexed-textures.html | 301 | #include <clipping_planes_pars_fragment> | COMMENT |
| LOW | manual/pages/game.html | 761 | it's infrastructure that most games need.</p> | COMMENT |
| LOW | examples/webxr_vr_layers.html | 41 | import { VRButton } from 'three/addons/webxr/VRButton.js'; | COMMENT |
| LOW | examples/webgl_gpgpu_water.html | 461 | COMMENT | |
| LOW | examples/jsm/misc/VolumeSlice.js | 181 | COMMENT | |
| LOW | examples/jsm/materials/WoodNodeMaterial.js | 61 | // const dotProduct = p3.dot( p3.yzx.add( 33.33 ) ); | COMMENT |
| LOW | examples/jsm/tsl/display/AnaglyphPassNode.js | 61 | COMMENT | |
| LOW | examples/jsm/objects/SkyMesh.js | 161 | const vBetaM = varyingProperty( 'vec3' ); | COMMENT |
| LOW | examples/jsm/libs/mikktspace.module.js | 21 | // JavaScript port, altered from the MikkTSpace reference implementation: | COMMENT |
| LOW | examples/jsm/libs/potpack.module.js | 81 | // space matches the box height; update it accordingly | COMMENT |
| LOW | examples/jsm/csm/CSMShader.js | 121 | COMMENT | |
| LOW | examples/jsm/shaders/VelocityShader.js | 61 | COMMENT | |
| LOW | examples/jsm/shaders/HalftoneShader.js | 41 | void main() { | COMMENT |
| LOW | examples/jsm/loaders/EXRLoader.js | 21 | // Redistribution and use in source and binary forms, with or without | COMMENT |
| LOW | examples/jsm/loaders/EXRLoader.js | 41 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | COMMENT |
| LOW | examples/jsm/loaders/EXRLoader.js | 61 | // // distribution. | COMMENT |
| LOW | examples/jsm/loaders/TDSLoader.js | 941 | const INT_PERCENTAGE = 0x0030; | COMMENT |
| LOW | examples/jsm/loaders/TDSLoader.js | 961 | // const FOG = 0x2200; | COMMENT |
| LOW | examples/jsm/loaders/TDSLoader.js | 981 | // const MAT_USE_REFBLUR = 0xA250; | COMMENT |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/unit/src/nodes/tsl/TSLUtilsMisc.tests.js | 114 | // regardless of u). This is a robust, backend-independent invariant, | COMMENT |
| MEDIUM | examples/webaudio_sandbox.html | 33 | <a href="https://opengameart.org/content/project-utopia-seamless-loop" target="_blank" rel="noopener">congusbongus</a | CODE |
| MEDIUM | examples/jsm/tsl/display/FSR1Node.js | 357 | // RCAS pass: robust contrast-adaptive sharpening. | COMMENT |
| MEDIUM | examples/jsm/loaders/usd/USDComposer.js | 4182 | // Estimating bind transforms from vertex/joint samples is not robust and can | COMMENT |
| MEDIUM | src/math/Box3.js | 212 | // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes | COMMENT |
| MEDIUM | src/math/Box2.js | 148 | // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/webgl_rendertarget_texture2darray.html | 271 | // Step 1 - Render the input DataArrayTexture into render target | COMMENT |
| LOW | examples/webgl_rendertarget_texture2darray.html | 274 | // Step 2 - Renders the scene containing the plane with a material | COMMENT |
| LOW⚡ | examples/jsm/loaders/SVGLoader.js | 817 | // Step 3: Compute (cx, cy) from (cx', cy') | COMMENT |
| LOW⚡ | examples/jsm/loaders/SVGLoader.js | 821 | // Step 4: Compute θ1 and Δθ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manual/examples/tips-html-background.html | 79 | If you decide to stack more than one cube, don't forget to use a stack of cubes as a guide to follow to make a t | CODE |
| LOW | manual/pages/debugging-javascript.html | 484 | like the <a href="/docs/#api/en/materials/MeshBasicMaterial"><code class="notranslate" translate="no">MeshBasicMaterial< | CODE |
| LOW | manual/pages/fundamentals.html | 390 | Don't forget to add addons to the import map like so | CODE |
| MEDIUM | manual/pages/prerequisites.html | 315 | <p>For those cases where you really need to override a rule <a href="https://eslint.org/docs/user-guide/configuring#disa | CODE |
| LOW | manual/pages/installation.html | 184 | Don't forget to replace <i><version></i> with an actual version of three.js, like <i>"v0.149.0"</i | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/unit/src/core/BufferGeometry.tests.js | 548 | // a.parameters = { "placeholder": 0 }; | COMMENT |
| LOW | utils/docs/template/static/scripts/highlight.min.js | 316 | }),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code", | CODE |
| LOW | docs/scripts/highlight.min.js | 316 | }),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code", | CODE |
| LOW | manual/examples/responsive-paragraph.html | 21 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec laoreet | CODE |
| LOW | manual/examples/responsive-paragraph.html | 21 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec laoreet | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | examples/jsm/loaders/SVGLoader.js | 817 | // Step 3: Compute (cx, cy) from (cx', cy') | COMMENT |
| LOW⚡ | examples/jsm/loaders/SVGLoader.js | 821 | // Step 4: Compute θ1 and Δθ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/jsm/loaders/FBXLoader.js | 4432 | function getData( polygonVertexIndex, polygonIndex, vertexIndex, infoObject ) { | CODE |
| LOW | src/nodes/accessors/VelocityNode.js | 191 | function getData( object ) { | CODE |