Tech & Art & Kawaii blog, by @rubatotree
北京大学 2023-2025 推免机试题笔记
北京大学计算机学院推免夏令营机考为 ACM 赛制,时长 2 小时,每场共 8 题,题目可能是中文或英文,部分题目(主要是英文题)选自 OJ 中已有的题目。题目不按难度排序,整体难度在 CF Div4(大部分题)到 Div2 D(1~2题) 之间,能切 Div2 D 的同学可以放心考试。据说实际不爆零就能通过。 有意向报考北大计算机学院研究生的同学可以提前准备刷题。 题源整理 2025 比赛(无数据) A. Lab 杯 B. All in All C. 表达式求值 (无数据) D. 忍者道具 (无数据) E. 神奇的数列 (无数据) F. 拼装模型 G. Genealogical Tree H. 怀表问题 (无数据) ...
大数据算法 课程总结笔记 II(作业及个人答案)
作业一 作业一 第1题 解答 这里的趋近符号似乎含义没有标识清楚,这里默认为是当 趋近于无穷大时的极限关系。 ...
大数据算法 课程总结笔记 I(章节笔记)
这是我在 2026 年春季于中科大学习丁虎老师的《大数据算法》课程时整理的期末考试复习笔记。非常喜欢的好课。只是可惜讲义编写得比较潦草。这里的笔记尽可能指出讲义中各种概念的几何意义与机器学习意义,并尝试找出各种定义、定理的动机。 0 近似算法 本课程中的算法大多是用近似算法解决精确求解较为困难的问题,因此要定义一些概念对算法的误差进行衡量。 一方面,算法的求解结果可能是有误差的。我们定义 近似算法,其中 为近似比: ...
图形已死,all in AI具身 I: RoboSplat 论文阅读与杂谈
这周组会上导师提到现在做 Rendering 已经很难有价值和影响力了,也很难找到好的课题,应该 all in 具身智能。感觉自己从一个转型阵痛期的组跳进了另一个转型阵痛期的组。不过转型是正确的,具身方向的确好发有影响力的论文,就业前景也比传统图形学好。虽然私心比较喜欢简洁优雅但没用的图形学,但确实应该现实一点。我们该思考一下怎样把已有的图形学、渲染经验搬到具身智能的应用上。 组里同学分享的 RoboSplat [1] 一文确实相当契合 CG for embodied 的愿景,因此我们从这篇论文开始了解我们能够做什么。 论文概要 本文的目标是通过输入场景的多视角 RGB 图片和单次示教样本(Expert Demonstration,人工操作机械臂完成一次任务,得到每帧的机械臂状态数据和单监督视角 RGB 图像序列)训练 VLA 模型泛化完成不同干扰场景下的同一任务。本文试图解决的干扰场景分为物体位姿移动(Object Pose)、监督相机移动(Camera View)、光照条件改变(Lighting)、物体种类改变(Object Type)、周边环境改变(Appearance)、机械臂外观改变(Cross Embodiment)六种。 图 1 论文 teaser,展示了 RoboSplat 的训练过程。 本文做到泛化的具体方法则是做数据增强,从单次示教样本中根据这几种干扰情况生成上千条增强样本 (augmented demonstrations)。以往生成增强样本的思路是直接在 2D 图像空间做生成式编辑,而本文考虑将多视角图片训练成 3DGS 场景(并在语义上分离场景、物体、机械臂,给机械臂绑骨),去在 3DGS 场景中做编辑模拟这些干扰,再合成回样本图像序列。这样做的好处是保证了图像之间场景的一致性,且不会有抖动等情况出现,因此能准确指导 VLA 模型学习到正确的操作策略。 本文对这几种任务做了测试: Pick Object(抓取物体):机械臂需要抓起放置在 30cm*40cm 范围桌面上的目标物体。 难点: 测试基本的空间 3D 定位与抓取能力。 Close Drawer(关闭抽屉):机械臂需要推关一个抽屉。抽屉的位置在 15cm*40cm 范围内随机变化,且抽屉在 Z 轴方向的旋转角度在 [-pi/8, pi/8] 之间随机偏转。 ...
SIGGRAPH 2026 论文笔记 III: Monte Carlo PDE & 几何
1. Monte Carlo PDE Probe-based Walk on Spheres for Efficient Path Reusing [Project] 我自己的文章。 利用路径信息重用高效优化 Walk on Spheres 系列算法。 考虑到 Walk on Spheres 的采样过程,每一步都要在球面上均匀采样一个点作为该点解值的一个无偏估计。由 Off-center 形式的平均值公式可以得到实际上在球内的偏心点按 Poisson Kernel 分布在球面上采样一个点得到的结果也是解值的无偏估计。因此 WoS 均匀采样得到的解值可以为球内每个点所重用,在算法上就是得到一条完整路径后将求解值 Splat 回路径上的每个球内。这个算法被我们称为 Naive Path Reuse,不清楚现在 sig 上那篇 Talking to Neighbors 有没有扩展成这样的形式。 图 1 我们的 Naive Path Reuse 算法 然后考虑到这样 Splat 的开销过于大(球内每个点都需要查询并访存一次),正好 25 年 11 月又出来了 Harmonic Caching 的文章,发现后者正好可以将 Splat 的任务转化为求解几个 Fourier 系数的任务。因此和 HC 类似地在求解域预放置一些探针球,游走时取一个探针球做 Poisson Kernel 采样找到边界,若不存在探针球就 Fallback 到传统的 WoSt 算法,可以验证这个行为仍然是满足布朗运动的。找到 Dirichlet 边界后就将求解到的结果送回探针球中贡献 Fourier 系数。然后就非常快了。 ...
SIGGRAPH 2026 论文笔记 II: Rendering
1. 材质,外观,可微渲染 Fiber-level Woven Fabric Capture from a Single Microscopic Image [1] 另一位助教 @JerryShen 的文章之一。这篇没有上 Sig26,只是录进了 ToG,但也放在这里。 从单张显微图像通过可微渲染重建织物的纤维级几何和材质。 对于几何建模了基本可微的五层结构: 编织模式 Pattern:平纹、斜纹等纹理模式,直接预设好,用预训练的 CNN 分类; 中心线层 Yarn Centerline:每根纤维从侧面看高度关于路径长度的函数,用抛物线和圆混合; 纤维截面层 Cross-sectional Fiber Distribution:在中心线周围生成 根纤维,纤维的螺旋扭转 、偏移 、周期性挤压变形等都是可微参数; 随机噪声层 Randomized Variation:用柏林噪声和白噪声让纤维的半径和纵向产生变化、噪声种子本身不可微但强度可微。 飘散纤维层 Flyaway Model:额外手动添加飘散出来的断线等纤维(定义有毛发 Hair 和环路 Loop 两种),模拟现实材质情况。这一层没法可微优化出来。 ...
SIGGRAPH 2026 论文笔记 I: 3D Gaussians
写一些笔记记录一下领域的最新进展。会持续更新,主页的 blog 发表日期仅供参考~ 1. 正向渲染加速 Gaussian Point Splatting [1] [Project] 本文用蒙特卡洛方法代替深度排序,加速了超大 3DGS 场景在 GPU 上的正向渲染过程。目前仅支持正向渲染。 本文注意到单个 Gaussian Splat 到屏幕空间的行为可以等价于在屏幕空间上按一个 Gaussian 分布放回采样 个点的结果的期望( 和 Gaussian 的参数相关)。而一系列 Gaussians 做 Alpha Blending 的行为可以等价于,对每个 Gaussian 采样 个点,然后对每个像素取深度上最靠前的点 作为 Splat 结果的无偏估计值。 ...
实分析 课程总结笔记
这是我在 2025 年春季于中科大学习于树澄老师的《实分析》[1] 课程时整理的期末考试复习笔记。课程录像已有同学上传到 Bilibili. 实分析复习笔记 期中部分 Lebesgue 测度的建立 1. 集合论基础:规定一类集合的代数性质,使得简单生成元上的性质可被推广 集合的运算,集合列的极限,点集拓扑 作业 1a.3:上下极限的等价表述 :事件无穷多次发生 :事件从某时刻开始一直在发生 ...
用 FPGA 写 Flappy Bird
同步一下之前(2024冬)写过的文章~ 不知不觉快到期末了,也做完了本学期数字电路实验课程的最后一个实验。我选择了实验中分值最高的,组队用 FPGA 完成一个能在 VGA 屏幕上显示的小游戏。正好,在多年前我用 Gamemaker 复刻过一个 Flappy Bird,于是决定把它搬到 FPGA 上。 ...
ARAP 曲面参数化算法实现笔记
同步一下之前(2024春)写过的文章,这是我当时在 计算机图形学 课上完成的作业报告,作为最难的一次作业,当时写了非常长的报告。 本次作业要求实现 ARAP,ASAP 与 Hybrid 三种非固定边界的曲面参数化算法。我在理解并实现了这些参数化算法的基础上,对 ASAP 做了迭代方法和单一方程组方法的两种实现,并对这些算法做了进一步研究。 这次作业在数学方面的知识对我来说还有许多我个人不太能独立理解的部分。感谢 @suchiwz 助教的耐心解答,让我能够对论文的各种细节做出能让我满意的理解。在本次作业报告中,我也会试着用刚做完 Homework 4 的大一学生也能理解的语言讲解我对这篇论文的理解。 0. 准备工作 本次作业新增了四个模型。它们的共同特点都是有比较好的切割(没有像 Bunny Head 那样过细的瓶颈了),并且都有各自的难点,如下表所示: 模型 特点 Cow 面数较多;网格较复杂,难以避免重叠;切割后仍保留了较多模型本身的几何特征(头部、眼睛、肢体),易于观察展开算法对形状的处理,确认算法的保形效果。 Beetle 高亏格曲面(即存在多条边界的曲面) Isis 有较多“细长”的三角形 Gargoyle 网格顶点数、面数非常多 Beetle 模型打破了 “模型只有一个边界” 的假设,因此我们需要对 Homework4 的边界映射算法做出调整,对每个边界都进行一次遍历,并取长度最长的边界作为映射的边界。相应地,对 Tutte 参数化中用到边界相关的代码进行调整,不再视不为主要边界的点位边界。这样,Tutte 参数化的结果就能够较好地处理 Beetle 模型,并将其作为 ARAP 的 Initial Guess 了。下图是 Floater 参数化处理后的 Beetle 模型。 ...