{"id":28670993,"url":"https://github.com/nobuyuki83/applied_computer_graphics_2024s","last_synced_at":"2026-03-08T23:31:11.621Z","repository":{"id":230656953,"uuid":"762656814","full_name":"nobuyuki83/Applied_Computer_Graphics_2024S","owner":"nobuyuki83","description":"Lecture at The UTokyo on computer graphics","archived":false,"fork":false,"pushed_at":"2024-07-08T01:21:35.000Z","size":3594,"stargazers_count":51,"open_issues_count":0,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-13T18:49:19.916Z","etag":null,"topics":["graphics-programming","lecture"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nobuyuki83.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2024-02-24T10:22:29.000Z","updated_at":"2025-06-06T22:36:09.000Z","dependencies_parsed_at":"2025-05-26T12:02:58.239Z","dependency_job_id":null,"html_url":"https://github.com/nobuyuki83/Applied_Computer_Graphics_2024S","commit_stats":null,"previous_names":["acg-2024s/acg","nobuyuki83/applied_computer_graphics_2024s"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/nobuyuki83/Applied_Computer_Graphics_2024S","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobuyuki83%2FApplied_Computer_Graphics_2024S","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobuyuki83%2FApplied_Computer_Graphics_2024S/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobuyuki83%2FApplied_Computer_Graphics_2024S/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobuyuki83%2FApplied_Computer_Graphics_2024S/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nobuyuki83","download_url":"https://codeload.github.com/nobuyuki83/Applied_Computer_Graphics_2024S/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobuyuki83%2FApplied_Computer_Graphics_2024S/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30276903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T20:45:49.896Z","status":"ssl_error","status_checked_at":"2026-03-08T20:45:49.525Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["graphics-programming","lecture"],"created_at":"2025-06-13T18:38:48.443Z","updated_at":"2026-03-08T23:31:11.597Z","avatar_url":"https://github.com/nobuyuki83.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Applied Computer Graphics 4860-1084\n\n[![CI_Linux](https://github.com/ACG-2024S/acg/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/ACG-2024S/acg/actions/workflows/ubuntu.yml)\n[![CI_Win](https://github.com/ACG-2024S/acg/actions/workflows/windows.yml/badge.svg)](https://github.com/ACG-2024S/acg/actions/workflows/windows.yml)\n\n![teaser](doc/rep_image.png)\n\nLecture at graduate school of information science and technology in the university of Tokyo, spring semester, 2024\n\nUTOL (UTokyo-LMS) (for Zoom URL, Slack and GitHub Classroom invitations): \n\n- https://utol.ecc.u-tokyo.ac.jp/lms/course?idnumber=2024_4886_4860-1084_01\n\n\n## Instructors\n\nDr. Nobuyuki Umetani \n- email: n.umetani@gmail.com\n- url: http://www.nobuyuki-umetani.com/\n- lab's web page: https://cgenglab.github.io/labpage/en/\n\nTA: Kenji Tojo\n- url: https://kenji-tojo.github.io/\n\n## Time\n\nMonday 2nd period, 10:25am - 12:10pm\n\n\n## Course Description\n\nComputer graphics is a technology to computationally represent objects' geometry, appearance and movement. This course is an introduction to the techniques generally seen in computer graphics. The aim of the course is to get familiar with applied mathematics such as linear algebra, vector analysis, partial differential equations, numerical analysis and optimization through the topics in computer graphics. There are C++ programming assignments to acquire research-oriented graphics programming skills such as OpenGL, shader programming, Eigen matrix library, Git and cmake. \n\nTopics:\n- affine transformation \u0026 homography\n- character animation (forward \u0026 inverse kinematics)\n- visualization (rasterization / ray casting)\n- optimization ( continuous optimization / dynamic programming )\n- parametric curves \u0026 surfaces\n- variational mesh deformation\n- grid-based fluid simulation\n\n\n## Lecture Schedule\n\n| Day | Topic | Assignment | Slide |\n|:----|:---|:---|:---|\n|(1)\u003cbr\u003eApr. 8| **Introduction**\u003cbr\u003eDidigital image |  | [[1]](http://nobuyuki-umetani.com/acg2024s/introduction.pdf), [[4]](http://nobuyuki-umetani.com/acg2024s/digital_image.pdf) |\n|(2)\u003cbr\u003eApr. 15| **Parametric curves / surfaces** \u003cbr/\u003e**Rasterization in 2D**, Digital Differential Analyzer | [task01](task01) | [[5]](http://nobuyuki-umetani.com/acg2024s/rasterization_2d.pdf) [[6]](http://nobuyuki-umetani.com/acg2024s/barycentric_coordinates.pdf) |\n|(3)\u003cbr\u003eApr. 22| **Parametric representation**\u003cbr/\u003eBézier curve, polynominal | [task02](task02) | [[7] ](http://nobuyuki-umetani.com/acg2024s/parametric_curve.pdf) [[8]](http://nobuyuki-umetani.com/acg2024s/polynominal.pdf) |\n|(5)\u003cbr\u003eMay 7| **Coordinate transformation**\u003cbr\u003eAffine, homography transformation | [task03](task03) | [[9]](http://nobuyuki-umetani.com/acg2024s/transformation.pdf) [[10]](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_2d.pdf) [[11]](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_3d.pdf) |\n|(4)\u003cbr\u003eMay 13| **Graphics pipeline**\u003cbr\u003edepth buffer method, shading, shadow, anti aliasing | [task04](task04) | [[12]](http://nobuyuki-umetani.com/acg2024s/rasterization_3d.pdf) [[13]](http://nobuyuki-umetani.com/acg2024s/graphics_pipeline.pdf)  |\n|(6)\u003cbr\u003eMay 20| **Ray Casting 1**\u003cbr/\u003espatial data structure | [task05](task05) | [[14]](http://nobuyuki-umetani.com/acg2024s/shading.pdf)  [[16]](http://nobuyuki-umetani.com/acg2024s/implicit_modeling.pdf) |\n|(7)\u003cbr\u003eMay 27| **Ray Casting 2**\u003cbr\u003eRendering equation, Monte Carlo integration | [task06](task06) | [[15]](http://nobuyuki-umetani.com/acg2024s/rasterization_subpixel.pdf)   [[17]](http://nobuyuki-umetani.com/acg2024s/ray_casting.pdf) [[18]](http://nobuyuki-umetani.com/acg2024s/monte_carlo_integration.pdf) [[19]](http://nobuyuki-umetani.com/acg2024s/ray_triangle_collision.pdf) |\n|(8)\u003cbr\u003eJune 3| **Character animation**\u003cbr\u003e Skeletal animation | [task07](task07) | [[21]](http://nobuyuki-umetani.com/acg2024s/jacobian.pdf) |\n|(9)\u003cbr\u003eJune 10| Guest lecture by Dr. Rex West |  | |\n|(10)\u003cbr\u003eJune 17| **Character animation2** \u003cbr\u003e linear blend skinning | [task08](task08) | [[20]](http://nobuyuki-umetani.com/acg2024s/character_deformation.pdf) |\n|(11)\u003cbr\u003eJune 24| **Optimization**\u003cbr\u003e Newton-Raphson method, gradient descent | | [[22]](http://nobuyuki-umetani.com/acg2024s/optimization.pdf) |\n|(12)\u003cbr\u003eJuly 1| **Laplacian mesh deformation**\u003cbr\u003e Sparse linear system | [task09](task09) | [[23]](http://nobuyuki-umetani.com/acg2024s/mesh_laplacian.pdf) [[24]](http://nobuyuki-umetani.com/acg2024s/sparse_linear_system.pdf) |\n|(13)\u003cbr\u003eJuly 8| **Grid-based Fluid**\u003cbr\u003e Poisson equation, Stam fluid | | [[25]](http://nobuyuki-umetani.com/acg2024s/fluid_simulation.pdf) |\n\n\n## Grading\n\n- 20% lecture attendance\n  - Attendance is counted based on writing a secret keyword on LMS. The keyword is announced for each lecture.  \n- 80% small assignments\n  - see below\n\n## Assignemnts\n\nThere are many small programming assignments. \nTo do the assignments, you need to create your own copy of this repository through **GitHub Classroom**.  \nThese assignments need to be submitted using **pull request** functionality of the GitHub. \nLook at the following document. \n\n[How to Submit the Assignments](doc/submit.md)\n\n| Task ID | Title | Thumbnail |\n|:---|:---|:---|\n| [task01](task01) | **Rasterization of lines and polygons**\u003cbr\u003eDDA, winding number | \u003cimg src=\"task01/preview.png\" width=100px\u003e |\n| [task02](task02) | **Rasterization of parametric curves**\u003cbr\u003e Quadratic Bézier curve, root of polynominal | \u003cimg src=\"task02/preview.png\" width=100px\u003e |\n| [task03](task03) | **Perspectively-correct texture mapping**\u003cbr\u003erasterization of triangle, barycentric coordinate | \u003cimg src=\"task03/preview.png\" width=100px\u003e |\n| [task04](task04) | **Vertex shader practice** \u003cbr\u003eRendering pipeline, mirror reflection, OpenGL | \u003cimg src=\"task04/preview.png\" width=100px\u003e |\n| [task05](task05) | **Fragment shader practice**\u003cbr\u003eRay marching method, CSG modeling, implicit modeling | \u003cimg src=\"task05/preview.png\" width=100px\u003e |\n| [task06](task06) | **Monte Carlo integration1**\u003cbr\u003eAmbient occlusion, importance sampling, BVH | \u003cimg src=\"task06/preview.png\" width=100px\u003e |\n| [task07](task07) | **Monte Carlo integration2**\u003cbr/\u003eMultiple importance sampling | \u003cimg src=\"task07/preview.png\" width=100px\u003e |\n| [task08](task08) | **Skeletal Character Animation**\u003cbr\u003eLinear blend skinning, articulated rigid body | \u003cimg src=\"task08/preview.png\" width=100px\u003e |\n| [task09](task09) | **Laplacian Mesh Deformation**\u003cbr\u003e Quadratic programming, sparse linear system | \u003cimg src=\"task09/preview.png\" width=100px\u003e |\n\n### Policy\n\n- Do the assignment by yourself. Do not share the answers of the assignments.\n- Late submission of an assignment is subject to grade deduction.\n- Score each assignment will not be open soon (instructor needs to adjust weight of the score later).\n- The assignments might not be graded soon.\n\n\n## Slides\n\n- [[1] Introduction](http://nobuyuki-umetani.com/acg2024s/introduction.pdf)\n\n- [[2] C++ programming](http://nobuyuki-umetani.com/acg2024s/cpp.pdf)\n\n- [[3] Git+GitHub](http://nobuyuki-umetani.com/acg2024s/git.pdf)\n\n- [[4] Digital Image](http://nobuyuki-umetani.com/acg2024s/digital_image.pdf)\n\n- [[5] Rasterization in 2D](http://nobuyuki-umetani.com/acg2024s/rasterization_2d.pdf)\n\n- [[6] Barycentric Coordinates](http://nobuyuki-umetani.com/acg2024s/barycentric_coordinates.pdf)\n\n- [[7] Parametric Curve](http://nobuyuki-umetani.com/acg2024s/parametric_curve.pdf)\n\n- [[8] Polynominal Root finding](http://nobuyuki-umetani.com/acg2024s/polynominal.pdf)\n\n- [[9] Coordinate Transformation](http://nobuyuki-umetani.com/acg2024s/transformation.pdf)\n\n- [[10] 2D Homogeneous Transformation](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_2d.pdf)\n\n- [[11] 3D Homogeneous Transformation](http://nobuyuki-umetani.com/acg2024s/transformation_homogeneous_3d.pdf)\n\n- [[12] 3D Rasterization](http://nobuyuki-umetani.com/acg2024s/rasterization_3d.pdf)\n\n- [[13] Graphics Pipeline](http://nobuyuki-umetani.com/acg2024s/graphics_pipeline.pdf)\n\n- [[14] Shading](http://nobuyuki-umetani.com/acg2024s/shading.pdf)\n\n- [[15] Subpixel Effect](http://nobuyuki-umetani.com/acg2024s/rasterization_subpixel.pdf)\n\n- [[16] Implicit Modeling](http://nobuyuki-umetani.com/acg2024s/implicit_modeling.pdf)\n\n- [[17]Ray Casting](http://nobuyuki-umetani.com/acg2024s/ray_casting.pdf)\n\n- [[18]Monte Carlo Integration](http://nobuyuki-umetani.com/acg2024s/monte_carlo_integration.pdf)\n\n- [[19]Ray Triangle Collision](http://nobuyuki-umetani.com/acg2024s/ray_triangle_collision.pdf)\n- [[20]Character deformation](http://nobuyuki-umetani.com/acg2024s/character_deformation.pdf)\n- [[21] Jacobian\u0026Hessian](http://nobuyuki-umetani.com/acg2024s/jacobian.pdf)\n- [[22] Optimization](http://nobuyuki-umetani.com/acg2024s/optimization.pdf)\n- [[23] Mesh laplacian](http://nobuyuki-umetani.com/acg2024s/mesh_laplacian.pdf)\n- [[24] Sparse linear system](http://nobuyuki-umetani.com/acg2024s/sparse_linear_system.pdf)\n- [[25] Fluid simulation](http://nobuyuki-umetani.com/acg2024s/fluid_simulation.pdf)\n\n\n\n## Reading Material\n- Introduction to Computer Graphics by Cem Yuksel](https://www.youtube.com/watch?v=vLSphLtKQ0o\u0026list=PLplnkTzzqsZTfYh4UbhLGpI5kGd5oW_Hh)\n- [Scratchpixel 2.0](https://www.scratchapixel.com/)\n- [Awesome Computer Graphics (GitHub)](https://github.com/luisnts/awesome-computer-graphics)\n- [Skinning: Real-time Shape Deformation SIGGRAPH 2014 Course](https://skinning.org/)\n- [Physics-based Animation2023S (Another course by the instructor) ](https://github.com/nobuyuki83/Physics-based_Animation_2023S)\n- [Physics-based Animation2021S (Another course by the instructor) ](https://github.com/nobuyuki83/Physics-based_Animation_2021S)\n- [Applied Computer Graphics 2022S (The same course two years ago)](https://github.com/nobuyuki83/Applied_Computer_Graphics_2022S)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobuyuki83%2Fapplied_computer_graphics_2024s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnobuyuki83%2Fapplied_computer_graphics_2024s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobuyuki83%2Fapplied_computer_graphics_2024s/lists"}