Files
awesome-awesomeness/terminal/computationalgeometry
2024-04-19 23:37:46 +02:00

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