six.js

cupPCB fork of three.js r184dev · CWE-407 patched · MIT license
WHAT
Six.js is cupPCB's fork of Three.js r184dev. Same API, same global namespace (THREE), MIT license. All CWE-407 algorithmic complexity defects patched. Served from cuppcb.com/cdn/six/.

DROP-IN — importmap

ONE URL CHANGE
Files ship as both three.* and six.*. Swap only the CDN origin — filenames stay identical to three.js.
// before
"three": "https://cdn.jsdelivr.net/npm/three@0.183.0/build/three.module.js"

// after — one URL, same filename
"three": "https://cuppcb.com/cdn/six/three.module.js"
<script type="importmap">
{"imports":{
  "three":         "https://cuppcb.com/cdn/six/three.module.js",
  "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.183.0/examples/jsm/"
}}</script>

DROP-IN — global script (window.THREE)

LEGACY SCRIPTS
For pages that access THREE as a global. Load six-global.js once — it sets window.THREE and attaches OrbitControls. No other changes needed.
<script type="importmap">
{"imports":{
  "three":         "https://cuppcb.com/cdn/six/three.module.js",
  "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.183.0/examples/jsm/"
}}</script>
<script type="module" src="https://cuppcb.com/cdn/six/six-global.js"></script>

<!-- your existing scripts unchanged -->
<script>
  const scene = new THREE.Scene();
  const camera = new THREE.PerspectiveCamera(75, w/h, 0.1, 1000);
  const controls = new THREE.OrbitControls(camera, renderer.domElement);
</script>
HOW IT WORKS
The importmap wires "three" to three.module.js. six-global.js imports Six.js and OrbitControls (from Three.js r183 addons, which re-imports "three" through the same map), then spreads both into window.THREE. Legacy scripts see the same THREE global they always expected — zero other changes needed.

FILES — three.* (drop-in filenames)

filesizemd5 · sha256
three.module.js 628 KB md5   1db12b69d4f9747f45e5fc8fe7f7ec64
sha256 e1ec1df7b0e064ab22be25f5eb2b1f8c4603f7dacf2c9fd0874ad19621f7ad75
three.module.min.js 356 KB md5   70b626fa510a4be055fdfc1c74ac83da
sha256 8386f13f7e95570efcdce13a07a6177debe0124f070fc764389430836da0e1cc
three.core.js 1.4 MB md5   3f0e7d8a0af3de18035d37dd33d7f5ef
sha256 abae17750fcbc16c1214170241ec048cea8a5778eccb04c182cb87ddeb70969d
three.core.min.js 376 KB md5   bf0f7aaf1498ea1994a6f69828875f63
sha256 a0e5bc98996c5733cc053cdf360265433623de2945dfcf4f382377b95e9ec118
three.webgpu.js 2.0 MB md5   7626a7ae23d3c660b49f18fef3c3a80e
sha256 a6b8283146a3ddb154814b7ed96911c3e0816640dd96c0c1c7d5d740fd60408c
three.webgpu.min.js 624 KB md5   4a6245132fa74236e2d5b1eac0f48c23
sha256 891da601bd084668cbbac0bd237a4ae42e5eb01c25838b6a5b76fd27d386bd5f
three.webgpu.nodes.js 2.0 MB md5   9d2d4b3f0db6e8341ab7712cce6c6f2d
sha256 029c997ad1009b1043bb499b657d056520c13fa7c58d1a5b8767e84c07d42510
three.webgpu.nodes.min.js 620 KB md5   dcf09adf1653b112c87133895a5d9407
sha256 760490e94f649635161942472bd8357f6e817719986c963b81b51081f7ed4da4
three.tsl.js 36 KB md5   77bf961a69ef9e1bdb0349920a69b24e
sha256 e6c3b8f03ef9e4a2fdf5500db72399a2e36574287e55190c9e641bc72968e436
three.tsl.min.js 24 KB md5   99c15620d721deced02ac42e08f485e1
sha256 c6e256f58ef5f51cf00b75840abebff1089491df432299147987ca8c07cef47e

FILES — six.* (branded filenames)

filesizemd5 · sha256
six.module.js 628 KB md5   1db12b69d4f9747f45e5fc8fe7f7ec64
sha256 e1ec1df7b0e064ab22be25f5eb2b1f8c4603f7dacf2c9fd0874ad19621f7ad75
six.module.min.js 356 KB md5   70b626fa510a4be055fdfc1c74ac83da
sha256 8386f13f7e95570efcdce13a07a6177debe0124f070fc764389430836da0e1cc
six.core.js 1.4 MB md5   3f0e7d8a0af3de18035d37dd33d7f5ef
sha256 abae17750fcbc16c1214170241ec048cea8a5778eccb04c182cb87ddeb70969d
six.core.min.js 376 KB md5   bf0f7aaf1498ea1994a6f69828875f63
sha256 a0e5bc98996c5733cc053cdf360265433623de2945dfcf4f382377b95e9ec118
six.webgpu.js 2.0 MB md5   7626a7ae23d3c660b49f18fef3c3a80e
sha256 a6b8283146a3ddb154814b7ed96911c3e0816640dd96c0c1c7d5d740fd60408c
six.webgpu.min.js 624 KB md5   4a6245132fa74236e2d5b1eac0f48c23
sha256 891da601bd084668cbbac0bd237a4ae42e5eb01c25838b6a5b76fd27d386bd5f
six.webgpu.nodes.js 2.0 MB md5   9d2d4b3f0db6e8341ab7712cce6c6f2d
sha256 029c997ad1009b1043bb499b657d056520c13fa7c58d1a5b8767e84c07d42510
six.webgpu.nodes.min.js 620 KB md5   dcf09adf1653b112c87133895a5d9407
sha256 760490e94f649635161942472bd8357f6e817719986c963b81b51081f7ed4da4
six.tsl.js 36 KB md5   77bf961a69ef9e1bdb0349920a69b24e
sha256 e6c3b8f03ef9e4a2fdf5500db72399a2e36574287e55190c9e641bc72968e436
six.tsl.min.js 24 KB md5   99c15620d721deced02ac42e08f485e1
sha256 c6e256f58ef5f51cf00b75840abebff1089491df432299147987ca8c07cef47e
six-global.js 4.0 KB md5   801a1ddda2cd5e7ed6f146a90153a7d2
sha256 557e5f643b3234b23c85341e696b2fd252b734946ca7cf4340398b7545503454
LICENSE
 
Sorry for the convenience.
six