Files
awesome-awesomeness/html/computationalgeometry.html
2025-07-18 22:22:32 +02:00

281 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-computational-geometry-awesome">Awesome Computational
Geometry <a href="https://awesome.re"><img
src="https://awesome.re/badge.svg" alt="Awesome" /></a></h1>
<blockquote>
<p>A curated list of awesome computational geometry visualizations,
libraries, and resources.</p>
</blockquote>
<p><a
href="https://en.wikipedia.org/wiki/Computational_geometry">Computational
geometry</a> is a topic in computer science that focuses on solving
problems in geometry. Applications of computational geometry include
computer-aided design, robotics, GIS systems, and computer vision.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#algorithm-visualizations">Algorithm
Visualizations</a></li>
<li><a href="#books">Books</a></li>
<li><a href="#notes">Notes</a></li>
<li><a href="#libraries">Libraries</a></li>
<li><a href="#conferences">Conferences</a>
<ul>
<li><a href="#strictly-computational-geometry">Strictly Computational
Geometry</a></li>
<li><a href="#broader">Broader</a></li>
</ul></li>
<li><a href="#journals">Journals</a></li>
<li><a href="#competitive-programming">Competitive Programming</a></li>
<li><a href="#courses">Courses</a>
<ul>
<li><a href="#open-courses">Open Courses</a></li>
<li><a href="#university-courses">University Courses</a></li>
</ul></li>
<li><a href="#miscellaneous">Miscellaneous</a></li>
</ul>
<h2 id="algorithm-visualizations">Algorithm Visualizations</h2>
<ul>
<li><a href="https://visualgo.net/en/convexhull?slide=1">Convex Hull</a>
- The convex hull of a shape is the smallest convex set that contains
it.</li>
<li><a
href="https://erencan-02.github.io/ConvexHullVisualizer/index.html">Convex
Hull Algorithms</a> - A website with visualizations of many convex hull
algorithms, including gift wrapping, Grahams scan, quickhull, divide
and conquer, monotone chain, and Chans algorithm.</li>
<li><a
href="http://sophiedasinger.github.io/Classwork/163proj/#viz">Chans
Algorithm</a> - An optimal output-sensitive algorithm to compute the
convex hull of a set of points in 2 or 3 dimensions.</li>
<li><a href="http://rkaneriya.github.io/point-location/">Kirkpatricks
Point location</a> - A data structure and method for point location with
O(n) space and O(log n) query time using triangulation.</li>
<li><a href="http://alexbeutel.com/webgl/voronoi.html">Voronoi
Diagrams</a> - A partition of a plane into regions close to a given set
of points.</li>
<li><a href="https://www.desmos.com/calculator/ejatebvup4">Fortunes
Algorithm</a> - A sweep line algorithm for generating the Voronoi
diagram in O(n log n) time and O(n) space.</li>
<li><a
href="https://people.eng.unimelb.edu.au/henli/programs/duality-demo/">Point/Line
Duality</a> - A type of mathematical duality frequently used in
computational geometry algorithms.</li>
<li><a
href="https://opendsa-server.cs.vt.edu/ODSA/AV/Development/kd-treeAV.html?selfLoggingEnabled=false&amp;localMode=false&amp;module=KDtree&amp;JXOP-debug=true&amp;JOP-lang=en&amp;JXOP-code=java&amp;scoringServerEnabled=false&amp;threshold=1.0&amp;points=0&amp;required=False">k-d
tree</a> - A method of partitioning k-dimensional space in an efficient
way for searches like nearest neighbors.</li>
<li><a href="https://www.youtube.com/watch?v=SBFwgR4K1Gk">Configuration
Space</a> - The space of possible configurations of an object like a
robot.</li>
</ul>
<h2 id="books">Books</h2>
<ul>
<li><a
href="https://www.amazon.com/Computational-Geometry-Applications-Mark-Berg/dp/3540779736">Computational
Geometry: Algorithms and Applications</a> - A textbook by Mark de Berg,
Otfried Cheong, Marc van Kreveld, and Mark Overmars (2008).</li>
<li><a
href="https://www.amazon.com/Computational-Geometry-Cambridge-Theoretical-Paperback/dp/0521649765">Computational
Geometry in C</a> - A popular introduction to the design and
implementation of geometry algorithms arising in areas such as computer
graphics, robotics, and engineering design by Joseph ORourke
(1998).</li>
<li><a
href="https://www.amazon.com/Computational-Geometry-Introduction-Monographs-Computer/dp/0387961313">Computational
Geometry: An Introduction</a> - An introductory textbook by Franco P.
Preparata and Michael I. Shamos (1993).</li>
<li><a
href="https://www.amazon.com/Algorithmic-Geometry-Jean-Daniel-Boissonnat/dp/0521565294">Algorithmic
Geometry</a> - A textbook by Jean-Daniel Boissonnat, Mariette Yvinec,
and Herve Bronniman (1998).</li>
<li><a
href="https://www.amazon.com/Discrete-Computational-Geometry-Satyan-Devadoss/dp/0691145539">Discrete
and Computational Geometry</a> - A comprehensive yet accessible
introduction to the intermingling of discrete geometry, a relatively new
development in pure mathematics, and computational geometry, an emerging
area in applications-driven computer science by Satyan L. Devadoss and
Joseph ORourke (2011).</li>
<li><a
href="http://www.clearviewtraining.com/interactive-computational.html">Interactive
Computational Geometry - A taxonomic approach</a> - An interactive
introduction to some of the fundamental algorithms of computational
geometry with Mathematica by Jim Arlow (2014).</li>
</ul>
<h2 id="notes">Notes</h2>
<ul>
<li><a
href="http://www.cs.umd.edu/~mount/754/Lects/754lects.pdf">Lecture
Notes</a> - Lecture notes from CMSC 754 Computational Geometry at the
University of Maryland by David Mount (2002).</li>
<li><a href="https://www.csun.edu/~ctoth/Handbook/HDCG3.html">Handbook
of Discrete and Computational Geometry</a> - A handbook by Jacob E.
Goodman, Joseph ORourke, and Csaba D. Tóth (2017).</li>
<li><a
href="https://www.amazon.com/Handbook-Computational-Geometry-J-Sack-ebook/dp/B00QM3S1SC">Handbook
of Computational Geometry</a> - An overview of key concepts and results
in computational geometry by J. R. Sack, and J. Urrutia (1998).</li>
<li><a
href="https://www.amazon.com/Computing-Euclidean-Geometry-Lecture-Notes/dp/9810218761">Computing
in Euclidean Geometry</a> - A collection of surveys and exploratory
articles about recent developments in the field of computational
Euclidean geometry by Ding-Zhu Du and Frank Hwang (1995).</li>
</ul>
<h2 id="libraries">Libraries</h2>
<ul>
<li><a href="https://www.cgal.org/">CGAL</a> - A software project that
provides easy access to efficient and reliable geometric algorithms in
the form of a C++ library. This website also has explanations of many of
these algorithms.</li>
<li><a href="http://www.wykobi.com/index.html">Wykobi</a> - An extremely
efficient, robust, and simple to use C++ 2D/3D oriented computational
geometry library.</li>
<li><a
href="https://github.com/gradientspace/geometry3Sharp">geometry3Sharp</a>
- Open-Source, Boost-licensed C# library for geometric computing.</li>
<li><a
href="http://jeffe.cs.illinois.edu/compgeom/software.html">Computational
Geometry Software Libraries</a> - UIUCs large collection and library of
geometric software by Jeff Erickson.</li>
<li><a
href="http://www3.cs.stonybrook.edu/~algorith/major_section/1.6.shtml">The
Stony Brook Algorithm Repository</a> - A repository of algorithms based
on <a
href="https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693">The
Algorithm Design Manual</a>.</li>
<li><a href="https://www.geometrictools.com/index.html">Geometric
Tools</a> - A library of source code for computing in the fields of
mathematics, graphics, image analysis, and physics that includes some
computational geometry algorithms.</li>
<li><a href="http://www.geolib.co.uk/">GeoLib</a> - A fast and efficient
computational geometry library available in C++, C# and Java.</li>
<li><a href="https://github.com/AndriiHeonia/hull">hull.js</a> -
JavaScript library that builds the convex hull of a set of points.</li>
<li><a href="https://github.com/google/s2geometry">S2 Geometry
Library</a> - A package for manipulating geometric shapes. Unlike many
geometry libraries, S2 is primarily designed to work with spherical
geometry, i.e., shapes drawn on a sphere rather than on a planar 2D map.
This makes it especially suitable for working with geographic data.</li>
<li><a
href="https://github.com/Habrador/Computational-geometry">Computational
Geometry Unity Library</a> - A library of computational geometry
algorithms for Unity.</li>
</ul>
<h2 id="conferences">Conferences</h2>
<h3 id="strictly-computational-geometry">Strictly Computational
Geometry</h3>
<ul>
<li><a href="http://www.computational-geometry.org/">Symposium on
Computational Geometry</a> - An annual symposium.</li>
<li><a href="http://www.cccg.ca/">The Canadian Conference on
Computational Geometry</a> - An annual international event for the
dissemination of new results in the fields of computational and
combinatorial geometry. The conference is usually held in a Canadian
city sometime in mid-August.</li>
<li><a href="http://www.alg.cei.uec.ac.jp/itohiro/JCDCGG/">Japan
Conference on Discrete and Computational Geometry, Graphs, and Games</a>
- A conference held annually since 1997, except for 2008.</li>
</ul>
<h3 id="broader">Broader</h3>
<ul>
<li><a
href="https://www.siam.org/conferences/cm/conference/soda22">Symposium
on Discrete Algorithms</a> - ACM-SIAM, held annually.</li>
<li><a href="http://acm-stoc.org/">Annual ACM Symposium on Theory of
Computing</a> - STOC covers all areas of research within Algorithms and
Computation Theory.</li>
<li><a href="http://ieee-focs.org/">IEEE Symposium on Foundations of
Computer Science</a> - The flagship conference sponsored by the IEEE
Computer Society Technical Committee on the Mathematical Foundations of
Computing (TCMF) and covers a broad range of theoretical computer
science.</li>
<li><a href="http://allerton.csl.illinois.edu/">Annual Allerton
Conference on Communications, Control and Computing</a> - Draws some of
the brightest minds from industry, academia, and government to discuss
innovation in the fields of communication, control, and computing.</li>
</ul>
<h2 id="journals">Journals</h2>
<ul>
<li><a href="https://arxiv.org/list/cs.CG/recent">arXiv</a> - Recent
submissions to arXiv about computational geometry.</li>
<li><a
href="https://www.journals.elsevier.com/computational-geometry">Elsevier</a>
- A forum for research in theoretical and applied aspects of
computational geometry.</li>
<li><a href="https://jocg.org/index.php/jocg">Journal of Computational
Geometry</a> - An international open access journal devoted to
publishing original research of the highest quality in all aspects of
computational geometry.</li>
</ul>
<h2 id="competitive-programming">Competitive Programming</h2>
<ul>
<li><a
href="https://www.hackerearth.com/practice/notes/computational-geometry-i-1/">HackerEarth</a>
- A set of articles on computational geometry.</li>
<li><a
href="https://www.topcoder.com/community/data-science/data-science-tutorials/geometry-concepts-basic-concepts/">TopCoder</a>
- A set of articles on computational geometry.</li>
<li><a
href="https://www.hackerrank.com/domains/mathematics/geometry">HackerRank</a>
- A set of programming problems using computational geometry.</li>
<li><a
href="https://www.geeksforgeeks.org/geometric-algorithms/">GeeksforGeeks</a>
- Implementations and explanations for a large number of commonly asked
questions and common topics in geometric algorithms.</li>
</ul>
<h2 id="courses">Courses</h2>
<h3 id="open-courses">Open Courses</h3>
<ul>
<li><a
href="https://ocw.mit.edu/courses/mechanical-engineering/2-158j-computational-geometry-spring-2003/">MIT
OCW</a> - A course taught by Nicholas Patrikalakis and Takashi Maekawa
in 2013.</li>
<li><a
href="https://www.udemy.com/course/mastering-computational-geometry-cpp/">Udemy</a>
- A course about implementing computational geometry algorithms in
C++.</li>
<li><a href="https://www.edx.org/course/computational-geometry">edX</a>
- A course in computational geometry.</li>
<li><a
href="https://brilliant.org/practice/computational-geometry-intro/">Brilliant</a>
- Practice problems for basic concepts in computational geometry.</li>
</ul>
<h3 id="university-courses">University Courses</h3>
<ul>
<li><a href="http://cs.brown.edu/courses/cs252/">Brown University</a> -
A course taught by Roberto Tamassia in 2005.</li>
<li><a href="http://www.cs.wustl.edu/~taoju/cse546/">Washington
University in St. Louis</a> - A course taught by Tao Ju in 2017.</li>
<li><a href="http://www.cs.umd.edu/~mount/754/">The University of
Maryland</a> - A course taught by Dave Mount in 2002.</li>
<li><a href="https://sites.cs.ucsb.edu/~suri/cs235/235.html">UC Santa
Barbara</a> - A course taught by Subhash Suri in 2021.</li>
<li><a href="https://jeffe.cs.illinois.edu/teaching/compgeom/">UIUC</a>
- A course taught by Jeff Erickson in 2022.</li>
<li><a href="https://people.eecs.berkeley.edu/~jrs/274/">UC Berkeley</a>
- A course taught by Jonathan Shewchuk in 2019.</li>
<li><a href="http://www.cs.tufts.edu/comp/163/">Tufts</a> - A course
taught by Diane Souvaine in 2022.</li>
<li><a
href="https://i11www.iti.kit.edu/teaching/sommer2018/compgeom/index">KIT</a>
- A course taught by Tamara Mchedlidze and Chih-Hung Liu in 2018.</li>
</ul>
<h2 id="miscellaneous">Miscellaneous</h2>
<ul>
<li><a href="https://topp.openproblem.net/">The Open Problems
Project</a> - A project aimed to record important open problems in
computational geometry and related fields.</li>
<li><a
href="https://reference.wolfram.com/language/guide/GeometricComputation.html">Wolfram</a>
- Documentation for computational geometry algorithms implemented in the
Wolfram language.</li>
<li><a
href="https://www.mathworks.com/help/matlab/computational-geometry.html">Matlab</a>
- Documentation for computational geometry algorithms implemented in the
Matlab.</li>
</ul>
<h2 id="contributing">Contributing</h2>
<p>Contributions are welcome! See the <a
href="contributing.md">contribution guidelines</a>.</p>
<p><a
href="https://github.com/atkirtland/awesome-computational-geometry">computationalgeometry.md
Github</a></p>