A Robust 3D Convex Hull Algorithm in Java

This is a 3D implementation of QuickHull for Java, based on the original paper by Barber, Dobkin, and Huhdanpaa and the C implementation known as qhull. The algorithm has O(n log(n)) complexity, works with double precision numbers, is fairly robust with respect to degenerate situations, and allows the merging of co-planar faces.

License

License

GroupId

GroupId

com.github.quickhull3d
ArtifactId

ArtifactId

quickhull3d
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

A Robust 3D Convex Hull Algorithm in Java
This is a 3D implementation of QuickHull for Java, based on the original paper by Barber, Dobkin, and Huhdanpaa and the C implementation known as qhull. The algorithm has O(n log(n)) complexity, works with double precision numbers, is fairly robust with respect to degenerate situations, and allows the merging of co-planar faces.
Project URL

Project URL

http://quickhull3d.github.io/quickhull3d
Project Organization

Project Organization

John E. Lloyd
Source Code Management

Source Code Management

https://github.com/Quickhull3d/quickhull3d

Download quickhull3d

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.quickhull3d/quickhull3d/ -->
<dependency>
    <groupId>com.github.quickhull3d</groupId>
    <artifactId>quickhull3d</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.quickhull3d/quickhull3d/
implementation 'com.github.quickhull3d:quickhull3d:1.0.0'
// https://jarcasting.com/artifacts/com.github.quickhull3d/quickhull3d/
implementation ("com.github.quickhull3d:quickhull3d:1.0.0")
'com.github.quickhull3d:quickhull3d:jar:1.0.0'
<dependency org="com.github.quickhull3d" name="quickhull3d" rev="1.0.0">
  <artifact name="quickhull3d" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.quickhull3d', module='quickhull3d', version='1.0.0')
)
libraryDependencies += "com.github.quickhull3d" % "quickhull3d" % "1.0.0"
[com.github.quickhull3d/quickhull3d "1.0.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.7

test (2)

Group / Artifact Type Version
org.slf4j : slf4j-simple jar 1.7.7
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

com.github.quickhull3d - A Robust 3D Convex Hull Algorithm in Java

This is a 3D implementation of QuickHull for Java, based on the original paper by Barber, Dobkin, and Huhdanpaa and the C implementation known as qhull. The algorithm has O(n log(n)) complexity, works with double precision numbers, is fairly robust with respect to degenerate situations, and allows the merging of co-planar faces.

A tutorial on the QuickHull algorithm by Dirk Gregorius (Valve Software) was given at the 2014 Game Developers Conference in San Francisco.

There are some other 3D convex hull implementations available in netland, but I didn't find any that satisfied all the above criteria, so I created my own. The principal class is QuickHull3D, which is contained within the package com.github.quickhull3d. It is actually a reimplementaion of an earlier piece of work, ConvexHull3D, which was based on an insertion algorithm and had a complexity of O(n^2).

Mark Newbold has used this package to create a very picturesque applet that creates and displays Waterman polyhedra

See the maven project site here: quickhull3d

com.github.quickhull3d

quickhull3d

Versions

Version
1.0.0