Since I have more than a hundred repositories now, I thought it would be helpful to create a sitemap, organized by topics.
Note that forks (for adding pull requests) are not included. Also, a good part of these repositories are abandoned projects, so don't expect that everything should work.
I'm pretty sure I won't update this after every new repo, so some things may be missing.
First here are some of the projects that may be of general interest:
- dfo: One-file C++ implementations of several derivative-free optimization algorithms. Select one and just drop it in your project.
- libgeom: A very lightweight C++ geometry library containing the esseentials - 2D & 3D points/vectors, 2x2 and 3x3 matrices, B-spline curves & surfaces, triangle meshes.
- geo-framework: An extensible 3D geometry visualizer in C++/Qt, suitable for testing out ideas. Includes interrogation methods such as contouring, mean curvature map, isophote lines etc.
- qds-viewer: A visualizer for a collection of (possibly trimmed) B-spline surfaces. Based on a predecessor of geo-framework. Supports exact normals and mean/Gaussian curvatures.
- gyorstalpalo: Very compact grammar summaries for a few natural languages (in Hungarian). Currently includes Swahili, Indonesian and Persian.
- scanned-dictionary: A webpage that helps you search for a word in a scanned dictionary. Easily extensible (currently supporting R. S. McGregor's Hindi-English, H. Wehr's Arabic-English, M. Haas' Thai-English, and the Aryanpur Concise Persian-English dictionaries). Note that scanned pages are not included for reasons of copyright.
Next comes the topic-based list:
This is by far the largest group, so it is divided further.
- cl-nurbs-tests: Various fairing algorithm tests, based on CL-NURBS
- class-a-curves: Testing various curve representations.
- discrete-clothoids: Test implementation of discrete clothoid curves
- ekcurves: Epsilon-kappa curves
- ksurf: Mesh-based surfaces using kappa-curves
- pseudo-g2: A testbed for experimenting with ribbon-based curves
- quartic: Quartic (and cubic) B-spline interpolation tests
- trigo-basis: Surface tests with the generalized trigonometric basis
- csg-script: A simple implicit modeling test system scriptable in Scheme
- dual-contouring: Minimal dual contouring library
- dual-primal: Dual/primal optimization of MarchingCubes meshes
- implicit-curvature: Curvature computation for implicit surfaces
- implicit-fit: Experiments with fitting implicit surfaces on a loop of curves.
- implicitize: Implicitization of polynomial surfaces
- ipia: Implicit Progressive-Iterative Approximation
- ldni: A CPU implementation of Layered Depth-Normal Images for experimenting
- liming: Generalization of Liming-curves
- marching: Marching cubes implementation
- marching-surface: Experiments with the marching surface idea
- polygonizer: A wrapper over Jules Bloomenthal's implicit surface polygonizer
- biharmonic-spatch: Creating S-patches from Sabin nets
- c0coons: Multi-sided C0 Coons patch with rational Bézier boundary curves
- concave-gb: Concave GB patches
- curved-domain: Curved domain tests
- curved-patch: N-sided surface with a curved domain
- displacement: Testbed for displacement patches
- dual-surface: Multi-sided dual surface representation
- gb-center: Minimal library computing the center point of GB (and other) patches
- gordon-wixom: Gordon-Wixom C1 interpolation
- harmonic: Harmonic coordinate computation library
- libmec: Minimal Entropy Coordinate library
- manifold: An n-patch-based construction similar to Zorin's
- midpoint: Minimal library for MidPoint patches.
- molihua: Polyhedral modeling with CD-GB patches
- multiloop: Test the parameterization of domains with multiple loops
- natural-neighbors: Framework for testing a natural neighbor based idea
- nielson: Nielson's triangular patch
- permanence: Permanence patch experiments
- qgb: Quadratic GB patch
- sabin-multiloop: Transfinite patch handling multiple loops, based on Sabin's 1998 paper
- sketches-plugins: Surface plugins for the Sketches modeling system
- spatch: S-patch in Haskell
- tensor-conversion: Experiments on converting an n-sided patch to a trimmed tensor product surface
- toric: Toric patch evaluator
- transfinite: Transfinite interpolation surface library
- xsolid: Framework for testing the ideas described in "The X construction"
- zheng-ball: An implementation of the Zheng-Ball multi-sided surface
- bezier-bspapprox: Approximate a Bézier curve with a B-spline of lower degree
- bezier-extractions: Computation of Bézier extraction matrices
- bezier-reduction: Optimal degree reduction for Bézier curves
- bezier-triangle: Minimal Bézier triangle evaluation
- bspline-connect: Lightweight library for connecting BSpline patches with G1/G2 continuity
- cl-nurbs: A NURBS library in Common Lisp
- clamp: Periodic to clamped B-spline curve conversion
- libgeom: Geometry library containing the essentials
- minibb: Minimal Bézier/B-spline curve library based on The NURBS Book
- optimize-curve-depth: Find the best depth given a 2D B-spline curve and a view direction
- conic-fit: Implicit conic fit on a polyline
- fit-sphere: Fitting a sphere with fixed radius on noisy data points.
- fit-test: B-spline surface fitting testbed
- least: Least polynomial interpolation
- profile-fitter: Fit a polyline (maybe later some curve) on an unordered, noisy point cloud.
- quadfit: Fit continuously connected B-spline surfaces on sampled points with boundary constraints
- quadric-fit: Implicit quadric fit on a triangle mesh
- vertebra-fit: Fitting a closed B-spline on a series of points defining vertebrae
- 3dviz: 3D animations demonstrating projections
- geo-framework: Basic framework for 3D geometry applications
- isophotes: Isophote line texture generator
- isoptic: Isoptic surface generation for meshes
- jet-wrapper: Jet fitting normals & curvatures (CGAL wrapper)
- qds-viewer: Quad patch viewer
- sample-framework: A minimal 3D framework for creating simple applications (deprecated, see geo-framework)
- sfview: NURBS surface visualizer (old project, see qds-viewer)
- strange-problem: Strange fitting problem
- subdivision: Exercises from Analysis and Design of Univariate Subdivision Schemes (by M. Sabin)
- trimult: Linux port of Ming Zou et al.'s 3D polygon triangulation library
- weingarten: Testing (embedded) Weingarten maps
- dosszioz: Our SAYC-based bidding system
- magic-keys: Magic Keys Bot Competition
- malom: A simple Nine Men's Morris game implementation
- obake-meiro: A maze generator for my daughter
- tetris: A tetris implementation in Clojure
- advent:
This is a meta-repo for my Advent of Code solutions, linking to the repositories below:
- advent2015 (in Common Lisp)
- advent2016 (mainly in Prolog)
- advent2017 (in Standard ML)
- advent2018 (in Common Lisp)
- advent2019 (in Prolog)
- advent2020 (mainly in Nim)
- advent2021 (mainly in Standard ML)
- advent2022 (mainly in AWK)
- advent2023 (in Tcl)
- advent2024 (in 25 different languages)
- advent2025 (in Janet & OCaml+Containers)
- aqua: AquaQ Challenge Hub solutions
- icfp2014: My submission to the ICFP '2014 contest
- icfp2015: My submission to the ICFP2015 contest
- synacor: My solution to the Synacor challenge
- core-forth: A minimal Forth system implementing the 2012 standard
- lispkit: A Scheme implementation of the SECD virtual machine, and a LispKit Lisp compiler
- ngaro-asm-x86: An x86 assembly implementation of the Ngaro Virtual Machine
- minivm: A minimal 8-bit virtual machine for didactic purposes
- erbi-practice: ErBi input method learning program
- qanyulogus: A program for organizing all the videos, CDs / DVDs at home
- scanned-dictionary: A webpage that shows a given page of a scanned dictionary
- wubi-practice: WuBi input method learning program
- formalis: A short summary of interesting topics in generative grammars & automata
- gyorstalpalo: Grammar notes for a few natural languages
- persian-poems: Hungarian translation of Persian poems
- programnyelv: A tutorial on creating a functional programming language based on combinatoric logic
- prolog-konyv: Problem solving in Prolog for people new to programming
- prolog-leckek: Introductory programming lessons in Prolog
- bibtex: BibTeX entries of my publications
- dfo: Testing some derivative-free optimization algorithms
- laser-pointer: A transparent window functioning as a laser pointer
- magnify: Magnifying glass effect
- parse-args:
A small Common Lisp utility library similar to
getopt - progfun-assignments: Assignments of the Coursera course Functional Programming Principles in Scala
- sicp: A CL translation of the examples/solutions in the Wizard Book