Try it out, it’s great! :)
It’s RC until it survives the first wave of feedbacks and I’ve finished an API reference.
With this, the previous roadmap has been finished. What’s left to do are more examples to demonstrate the features. This will hapen within the next few weeks.
You can get the source code here: https://github.com/potree
Documentation is here: Documentation; User Interface Documentation
Windows binaries for the converter are here: Downloads
I will continue to develop this, now as master thesis under the Harvest4D Project
And of course, here are 4 new demos:
For anyone interested in using potree, here is a list of what potree can do and what I’m working on:
What potree can do:
- Render large(>100m points) colored point clouds in all major web browsers.
- Based on three.js so it can also do everything three.js can.
- Variable Level of Detail, point spacing and octree depth as trade of between performance and quality.
- Just take a look at the showcase to get an impression of what it can do!
What I’m working on:
- Render uncolored LIDAR data.
- Improving converting and rendering of LIDAR data which usually has large width and depth but low height.
- Additional materials for intensity, height, return type, etc.
- Georeferencing or at least handling huge coordinates. Georeferenced point clouds tend to have huge coordinates which causes a loss of precision and therefore jitter in points and camera movement.
- improve culling of unnecessary/invisible nodes
- Tools like distance measurement and clipping planes.
- High quality shaders
- Improved data structures to speed up loading and rendering
Send me an email if you’ve got nice point clouds to provide for the showcase. (preferably in las or laz format)
New point clouds in the showcase, provided by Weiss AG
The rewrite is now in the master branch. Get the source code at github.
The previous stable release is still available in the archive_latest_before_threejs branch.
Documentation is outdated and has been removed. Take a look at the examples to see how potree is used.
The online-demos have been updated as well. Click on an image to open a demo page:
I’m currently working on rewriting potree in three.js. With this, you will be able to render huge point clouds as well as everything three.js has to offer.
Here are some demos of the current state:
* Distance Measuring
* Using one point cloud multiple times in a scene
The threejs based rewrite is available at: https://github.com/potree/potree/tree/threejs_plugin
It is not stable, yet, but it will become the main branch soon so it might be a good idea to experiment with it instead of the master branch.
Pix4D is using potree to display pointclouds of the matterhorn, lausanne and a quarry online in their showcase:
Discover and interact with 3D point clouds
Here is a PlyViewer demo: PlyViewer
Just Drag&Drop your ply file into the black area and wait until it’s loaded.
For now, only PLY files with float xyz and uchar rgb and up to ~8m points are supported. For example:
element vertex 462312
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
If you don’t have a supported ply file, try this one: vienna_parliament_relief.ply
This is what it looks like:
Download Windows 64bit binaries: PotreeConverter_2014.04.06.zip
PotreeConverter can now transform following file formats into the potree format:
- las files with XYZ and 2-byte RGB data.
- ply files with “element vertex” as the first element and x,y,z,r,g,b properties. Subsequent elements will be ignored. xyz must be floats and r,g,b must be uchars. ASCII and binary_little_endian formats are supported.
- xyz files with either xyzrgb or xyzi data. Specify the type, as well as the range of the data with the -f and -r options.
Usage has changed in favour of unix-like arguments:
-h [ --help ] prints usage
-o [ --outdir ] arg output directory
-s [ --spacing ] arg Distance between points at root level. Distance
halves each level.
-l [ --levels ] arg Number of levels that will be generated. 0: only
root, 1: root and its children, ...
-f [ --input-format ] arg Input format. xyz: cartesian coordinates as floats,
rgb: colors as numbers, i: intensity as number
-r [ --range ] arg Range of rgb or intensity.
--source arg Source file. Can be LAS, PLY or XYZ
# convert ply files
./PotreeConverter.exe C:/data.ply -s 0.5 -l 4
# convert las files
./PotreeConverter.exe C:/data.las -s 0.5 -l 4 -o C:/potree_converted
# convert files in the xyzrgb format with rgb between 0 and 255
./PotreeConverter.exe C:/data.xyz -f xyzrgb -r 255
# convert files in the xyzi format with intensity between 0 and 65536
./PotreeConverter.exe C:/data.xyz -f xyzi -r 65536
Read more at: https://github.com/potree/PotreeConverter
Potree is now available at github. You can get future stable releases from potree – master and the latest development from potree – develop.
PotreeConverter source code is available at PotreeConverter – master
The PotreeConverter sourcecode can be downloaded here:
PotreeConverter – source
It includes a Visual Studio 2012 solution. There is no linux build but I don’t think I’ve used any platform dependend code so it shouldn’t be hard to create one.
For anyone interested in how it works, here is a documentation. It’s written for a course I attended and explains the algorithm, not the source code.
PotreeConverter – documentation