うーん。インポート・エクスポートは充実しているように思うんだけれども、ライブラリ自身のシリアライズ・デシリアライズ機能はまだまだ実装が足りていないように思う。three.jsに精通していないのにこんなこと言うのもなんだが。
たとえばgeometryのtoJSON()とか。これの継承オブジェクトのShapeGeometryとかでもtoJSON()できるのだけれども、オーバーライドされていないせいかきちんとしたオブジェクトとして出力できていない。もう少し具体的にいうとshape情報が欠落してしまう。そしてデシリアライズする(ObjectLoaderを使用する)とそんな型はないと怒られてしまう。これはひとえに網羅的にシリアライズ・デシリアライズが実装されていないのと、統一的なインターフェースが確立されていないためだと思う。そういう点ではまだthree.jsは発展途上なのかもしれない。まあ自分でシリアライズコードを書けばいいんだけれどもね。なんか惜しいというか中途半端な気がするのだ。