How old of a three.js version can we use?

Can we for example roll back to three.js 0.124.0? Do I have to always use the version bundled in package.json which is "three": "file:../../Library/PackageCache/com.needle.engine@2.50.0-pre/package~/node_modules/three",?
The reason is I want to use a package that uses the old Three.Geometry instead of Three.BufferGeometry and updating that package to use three.buffergeometry is no small feat

Original Post on Discord

by user 103054507105067008

Trying swapping out that file… line to "three": "^0.124.0", in dependencies

by user 103054507105067008

It will not be as simple as that as we made a couple of fixes and additions to threejs that will be missing if you downgrade and probably fail loading completely.

Everytime I install it rolls back to the file… version

by user 103054507105067008

Dang

by user 103054507105067008

Which library are you trying to use? Maybe you can just mock the type and forward it to the new threejs type?

It’s Depthkit once again, I got pretty far updating the deprecated calls to THREE.Geometry working then I hit Face3 calls which are deprecated as now faces seem to need to be declared per vertices and I got stuck fully
https://github.com/juniorxsound/Depthkit.js/issues/21

by user 103054507105067008

I’m making progress with my rewrite of their use of deprectated Three.js stuff luckily. Seems a mess when stuff gets deprecated in Three.js

by user 103054507105067008

The Depthkit library itself isn’t very complex it seems
Would be better if you embed their few files (it’s just like, 3-4) and change stuff there. Good opportunity to make a PR / Fork to them :slightly_smiling_face:

Going back to an old three version will basically break “nearly everything” about needle engine, including the ability to animate anything, all fixes and updates we made, orbit controls that are parented to other things, newer material models in glTF, USDZ export, … you name it

Like, you might have “something” but most likely not what you expect.