{"id":19682104,"url":"https://github.com/ssloy/least-squares-course","last_synced_at":"2026-02-15T15:02:58.435Z","repository":{"id":50486728,"uuid":"222901933","full_name":"ssloy/least-squares-course","owner":"ssloy","description":"By a programmer for programmers","archived":false,"fork":false,"pushed_at":"2023-12-04T05:39:23.000Z","size":121073,"stargazers_count":213,"open_issues_count":0,"forks_count":23,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-09-15T02:45:05.044Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssloy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-20T09:38:37.000Z","updated_at":"2025-09-06T10:08:15.000Z","dependencies_parsed_at":"2025-01-10T06:06:49.347Z","dependency_job_id":null,"html_url":"https://github.com/ssloy/least-squares-course","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ssloy/least-squares-course","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssloy%2Fleast-squares-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssloy%2Fleast-squares-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssloy%2Fleast-squares-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssloy%2Fleast-squares-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssloy","download_url":"https://codeload.github.com/ssloy/least-squares-course/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssloy%2Fleast-squares-course/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29481924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T11:35:25.641Z","status":"ssl_error","status_checked_at":"2026-02-15T11:34:57.128Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T18:09:41.713Z","updated_at":"2026-02-15T15:02:58.407Z","avatar_url":"https://github.com/ssloy.png","language":"TeX","funding_links":[],"categories":["Personal Websites and Blogs"],"sub_categories":["Mixed Programming \u003cspan id=\"mixed-programming-blogs\"\u003e"],"readme":"# Least squares for programmers\n### with illustrations\n\nThis repository contains the [course notes](https://github.com/ssloy/least-squares-course/blob/master/manuscript.pdf) as well as the [source code](https://github.com/ssloy/least-squares-course/tree/master/src) for the long course I gave at SIGGRAPH 2021.\n\nYou can find the full video of the course on youtube:\n[![](https://raw.githubusercontent.com/ssloy/least-squares-course/master/presentation/screenshot.jpg)](https://youtu.be/ZDh3v8OAEIA)\n\nThis course explains least squares optimization, nowadays a simple and well-mastered technology.\nWe show how this simple method can solve a large number of problems that would be difficult to approach in any other way.\nThis course provides a simple, understandable yet powerful tool that most coders can use,\nin the contrast with other algorithms sharing this paradigm (numerical simulation and deep learning) which are more complex to master.\n\nLinear regression is often underestimated being considered only as a sub-domain of statistics / data analysis, but it is much more than that.\nWe propose to discover how the same method (least squares) applies to the manipulation of geometric objects.\nThis first step into the numerical optimization world can be done without strong applied mathematics background;\nwhile being simple, this step suffices for many applications, and is a good starting point for learning more advanced algorithms.\nWe strive to communicate the underlying intuitions through numerous examples of classic problems, we show different choices of variables and the ways the energies are built.\nOver the last two decades, the geometry processing community have used it for computing 2D maps, deformations, geodesic paths, frame fields, etc.\nOur examples provide many examples of applications that can be directly solved by the least squares method.\nNote that linear regression is an efficient tool that has deep connections to other scientific domains;\nwe show a few such links to broaden reader's horizons.\n\nThis course is intended for students/engineers/researchers who know how to program in the traditional way:\nby breaking down complex tasks into elementary operations that manipulate combinatorial structures (trees, graphs, meshes...).\nHere we present a different paradigm, in which we describe what a good result looks like, and let numerical optimization algorithms find it for us.\n\n![](https://raw.githubusercontent.com/ssloy/least-squares-course/master/manuscript/img/caricature.jpg)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssloy%2Fleast-squares-course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssloy%2Fleast-squares-course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssloy%2Fleast-squares-course/lists"}