salvipeter - Overview

A guide to my repositories

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:

CAGD

This is by far the largest group, so it is divided further.

Curve & surface fairing / aesthetic curves & surfaces

  • 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

Implicit curves & surfaces

  • 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

Multi-sided surfaces / transfinite interpolation / parameterizations

  • 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

General Bézier/B-spline utilities

  • 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

Various fitting utilities

  • 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

Other

  • 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

Games

  • 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

Programming contests

Programming languages

  • 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

Other Applications

Writings (in Hungarian)

  • 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

Miscellaneous

  • 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