threejs-full-es6

The famouse ThreeJs library with full examples as es6 module

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
threejs-full-es6
4605.1.06 years ago7 years agoMinified + gzip package size for threejs-full-es6 in KB

Readme

threejs-full-es6 ================ !Licenselicense-badgelicense-badge-url
DEPRECATED: Use three-full instead #

Extended Three JavaScript 3D library ####

Three.js r90 come with lot of examples files, which are curently not usable as ES6 module. The purpose of this project is to convert all examples files and includes them as part of the library. The version 5.0.7 is now available !!!

Setup ####

Assuming that npm and node are already installed. Install: ```` npm install --save threejs-full-es6 ````

Usage ####

Like Three.js but with more, more and more available stuff.
Using ES6: ######
````javascript import { WhatIWant } from 'nodemodules/threejs-full-es6/builds/Three.es.js' // equivalent to import { WhatIWant } from 'threejs-full-es6' // or directly from sources folder import { Ocean } from 'nodemodules/threejs-full-es6/sources/Ocean' ````
Using Node/CommonJS: ######
````javascript const Three = require('nodemodules/threejs-full-es6/builds/Three.cjs.js') ````
Using UMD: ######
````javascript const Three = require('node
modules/threejs-full-es6/builds/Three.umd.js') ````
Using AMD: ######
````javascript require('nodemodules/threejs-full-es6/builds/Three.amd.js',
function( Three ){
//...
}); ````
From HTML (not recommended): ######
````
<head>
<meta charset="UTF-8">
<title>Three Full Es6</title>
</head>
<body>
<script src="node_modules/threejs-full-es6/builds/Three.iife.js"></script>
<script>
alert('Three.REVISION: ' + Three.REVISION)
</script>
</body>
```` Note: You should copy the file in right server location to serve it correctly, and use Three.iife.min.js under production ! Importing the all library in HTML page should be avoided, use a proper module bundler like webpack or rollup using es6 module syntaxe !

Commands ####

In case you want participate, you need to known some commands below: Help: ```` npm run help ```` Will display all you need to known about available commands in threejs-full-es6 package Patch: ```` npm run patch ```` Important: After installing/reinstalling nodemodules/three you need to apply patch only once, for fix some examples parts. Convert: ```` npm run convert ```` This command will convert all examples files as ES6 modules () and copy all three files at top level of the package in view to be build. Build:
```` npm run build ```` This command will build converted sources as UMD, AMD, ES (), CJS and IIFE using Rollup

Missings ####

This is the list of unsupported part of example, which cannot/won't be converted.
  • Intermediary exporter files
* **Curves.js**
* **Geometries.js**
* **Materials.js**
  • Workers
* **RaytracingWorker.js**
* **OffscreenCanvas.js**
* **ctm folder**
  • Folders
* **draco** //*draco_decoder use Eval !*
* **sea3d** //*Duplicate export 'SEA3D', namespace not managed yet*
* **crossfade folder** //*Scene has already been declared*
  • Specific Files
* **Cloth.js** //*Use global variable from html example file !*
* **ParametricGeometries.js** //*Wrong export of TorusKnotCurve*
* **OceanShaders.js** //*Need to check how to extends imported lib properly*
* **RectAreaLightUniformsLib.js** //*Need to check how to extends imported lib properly*
* **Volume.js** //*Use Eval !*
* **NRRDLoader.js** //*Import Volume.js*
* **XLoader.js** //*Unprocessable AMD module style*

Redirected Files ####

  • AnimationClipCreator ---> 'animation/AnimationClipCreator.js'
  • ArcCurve ---> 'curves/ArcCurve.js'
  • BufferGeometryUtils ---> 'utils/BufferGeometryUtils.js'
  • Car ---> 'objects/Car.js'
  • CatmullRomCurve3 ---> 'curves/CatmullRomCurve3.js'
  • ConvexObjectBreaker ---> 'modifiers/ConvexObjectBreaker.js'
  • CubicBezierCurve ---> 'curves/CubicBezierCurve.js'
  • CubicBezierCurve3 ---> 'curves/CubicBezierCurve3.js'
  • Curve ---> 'curves/Curve.js'
  • CurveExtras ---> 'curves/CurveExtras.js'
  • CurvePath ---> 'core/CurvePath.js'
  • Detector ---> 'helpers/Detector.js'
  • Earcut ---> 'misc/Earcut.js'
  • EllipseCurve ---> 'curves/EllipseCurve.js'
  • Font ---> 'core/Font.js'
  • GPUComputationRenderer ---> 'renderers/GPUComputationRenderer.js'
  • GPUParticleSystem ---> 'objects/GPUParticleSystem.js'
  • Gyroscope ---> 'objects/Gyroscope.js'
  • ImmediateRenderObject ---> 'objects/ImmediateRenderObject.js'
  • ImprovedNoise ---> 'misc/ImprovedNoise.js'
  • Interpolation ---> 'core/Interpolation.js'
  • LineCurve ---> 'curves/LineCurve.js'
  • LineCurve3 ---> 'curves/LineCurve3.js'
  • MarchingCubes ---> 'objects/MarchingCubes.js'
  • MD2Character ---> 'objects/MD2Character.js'
  • MD2CharacterComplex ---> 'objects/MD2CharacterComplex.js'
  • MorphAnimMesh ---> 'objects/MorphAnimMesh.js'
  • MorphBlendMesh ---> 'objects/MorphBlendMesh.js'
  • Ocean ---> 'objects/Ocean.js'
  • Octree ---> 'utils/Octree.js'
  • Path ---> 'core/Path.js'
  • PRNG ---> 'utils/PRNG.js'
  • QuadraticBezierCurve ---> 'curves/QuadraticBezierCurve.js'
  • QuadraticBezierCurve3 ---> 'curves/QuadraticBezierCurve3.js'
  • QuickHull ---> 'utils/QuickHull.js'
  • RollerCoaster ---> 'objects/RollerCoaster.js'
  • ShaderGodRays ---> 'shaders/ShaderGodRays.js'
  • ShaderSkin ---> 'shaders/ShaderSkin.js'
  • ShaderTerrain ---> 'shaders/ShaderTerrain.js'
  • ShaderToon ---> 'shaders/ShaderToon.js'
  • Shape ---> 'core/Shape.js'
  • ShapePath ---> 'core/ShapePath.js'
  • ShapeUtils ---> 'utils/ShapeUtils.js'
  • SimplexNoise ---> 'misc/SimplexNoise.js'
  • SplineCurve ---> 'curves/SplineCurve.js'
  • TimelinerController ---> 'animation/TimelinerController.js'
  • TypedArrayUtils ---> 'utils/TypedArrayUtils.js'
  • UCSCharacter ---> 'objects/UCSCharacter.js'
  • VolumeSlice ---> 'audio/VolumeSlice.js'
All others folders under example file tree will be mapped to their counter-part under sources folders

Bugs ####

  • No known bug

Change log ####

5.0.7:
  • Fix missings PropertyBinding imports in FBXLoader
  • Fix missings PropertyBinding imports in GLTFExporter
  • Fix missings AnimationClip imports in MorphAnimMesh
  • Fix missings AnimationClip imports in MD2Loader
  • Fix missings Math imports in SoftwareRenderer
  • Fix missings CameraNode imports in NodeMaterialLoader
  • Fix missings Interpolant imports in MMDLoader
  • Remove unnecessary Math imports
5.0.6:
  • Add a window global variable check to avoid crach under nodejs
5.0.5:
  • Change default entry for main and module in package
5.0.4:
  • Fix #18, OBJLoader2 worker code
5.0.3:
  • Fix missings Geometries imports in ObjectLoader
  • Fix missings Materials imports in LoaderMaterial
  • Fix missings Curves imports in CurvePath
5.0.2 (Thanks to Marc Bartels):
  • Fix missings Loader imports in GLTFLoader
  • Fix invalid module.export stuff inside Detector
5.0.1 :
  • Reintroduce LineSegment fix
5.0.0 :
  • Support of Three r90
  • Move the example folder tree to source /!\ In case you're using direct source import, please check the '(Redirected Files)' part
  • Fix Math (instead of Math) issue
  • Fix missings imports/exports
  • Reintroduce RollerCoaster stuff
4.2.4 :
  • Fix Line/LineSegments circular dependency
( Be aware: Line constructor don't return LineSegments in case of wrong arguments, and log an error instead of a warning )
4.2.3 :
  • Fix Detector module.export code snippet
4.2.2 :
  • README.md fix wrong copy/paste
4.2.1 :
  • Ignore some dev files for npm
4.2.0 :
  • Change main entry point of package to Three.es.js
4.1.1 :
  • Fix NodeLib circular dependency with FunctionNode
4.1.0 :
  • Allow to build es module under production environment
  • Fix node warning about unhandled promise rejection
  • Fix rollup warning about indent option moved under output options
  • Clean up sources
4.0.0 :
  • XLoader.js: is now ignored due to AMD module
  • Add Earcut, Curves, EXRLoader, GCodeLoader, LoaderUtils
  • Remove KeyframeTrackConstructor, KeyframeTrackPrototype, PathPrototype and ImageUtils
  • Update imports statements
3.0.0 :
  • Cloth.js: is remove due to bad usage of global variable from his html example file
  • Add two new fix for three package in CameraNode and NodeLib
  • Fix almost all missings imports statements
  • Note:
- MMDExporter and MMDLoader need external dependency from https://github.com/takahirox/mmd-parser
- FBXLoader and VTKLoader need external dependency from https://github.com/imaya/zlib.js
- TTFLoader need external dependency from https://github.com/nodebox/opentype.js
2.2.0 :
  • Add tests about every file to check their imports
2.1.1 :
  • Fix missing import statement in ShaderPass
2.1.0 :
  • Export and import statement support multilines
2.0.0 :
  • Support Three.js r88
  • Reintroduce ColladaLoader in available modules
  • Refactor the convert pipeline