Some time ago, I packed a package for Christmas 2016.
http://threejs.hofk.de/geometrie/03_weihnacht_wuerfel.html
Variables and comments are in German ( for a German forum), but easy to translate. Works very well with https://www.deepl.com/translator.
The lines to the point.
// Paket basteln //Package tinkering
paketGeo = new THREE.Geometry(); … and the following lines to paketGeo
function hochfalten(geo,w){ // fold up
function deckeldrauf(geo,w){ // lid on it
function deckelauf(geo,w){ // open lid
function deckelzu(geo,w){ // lid closed
Currently I would do it with BufferGeometry.
Maybe that helps something.