Compress-Or-Die

OBJ Compressor

2,341.80 kB

(-27.32%)
3,221.97 kB

Upload new file Download

Compression

three.js only recognizes objects, so this is a way to access the groups as objects in three.js.


5000

All vertices are aligned on a cubic grid. This value defines how many possible positions exist on each axis. A higher value results in a more precise model at the cost of filesize.


100

Defines how many different vertex normal values exist to describe the lighting of the model. A higher value results in a better illuminated model at the cost of filesize.

2

Vertex normals are stored as a value between 0 and 1. This value defines the number of decimals. A higher value results in a better illuminated model at the cost of filesize.

Removes the lighting information from the model. Results in clearly visible faces.


Normal vertices are removed and created on the fly by javascript. That's really nice to lower the filesize heavily but comes with CPU time used for javascript.

Simple
Creates vertex normals. All edges will get rounded. Existing normals will automatically be removed. Use this over "Advanced" if the results are satisfying because it uses much less CPU-Power to generate them by javascript.
Advanced
Creates vertex normals. Edges will be kept depending on the egdes threshold you are able to specify with the next control. Existing normals will automatically be removed.

100

Defines how many different vertex texture values (or UV mapping coordinates) exist to describe the positions of the models textures. A higher value results in more precise positioned textures at the cost of filesize.

2

Vertex textures are stored as a value between 0 and 1. This value defines the number of decimals. A higher value results in more precise positioned textures at the cost of filesize.

Removes the texture information from the model. Results in missing textures (Links to MTL files get also removed).


Removes comments.


obm
Creates an ultra minified OBM file usable with the three.js OBM loader.
obj
Creates a minified OBJ file usable by all standard 3D software.
Your object was scaled to get the smallest filesize. Use a scale factor of 0.9132555298 to get the original size, eg. in three.js:
mesh.scale.set(0.9132555298, 0.9132555298, 0.9132555298);

*OBJMini

OBJMini is an ultra small 3D file format derived from the Wavefront OBJ file format that is usually used in 3D scenes in the web environment. It is heavily optimized for distribution via gzip (eg. by an Apache webserver module).

At the moment there exists a three.js OBM loader (tested with r80-r82) which you can download here:
OBMLoader.min.js (3,979 bytes)

All your object, group and material definitions are kept so you don't have to worry about a broken model.

Usage

Additionally to the OBJLoader shipped with three.js you have to include the OBMLoader:

<script src="OBJLoader.js"></script>
<script src="OBMLoader.min.js"></script>

Then use the OBMLoader as you would use the OBJ loader:

var loader = new THREE.OBMLoader();
loader.load("your_file.obm", function(mesh) {
	...
});

Result

Hover this area to show the original object

Rotate   Zoom   Pan

Original

Hover this area to show the original object

Rotate   Zoom   Pan