背景:面向对象不是一组孤立语法面向对象程序设计很容易学成一串名词:类、对象、构造函数、封装、继承、多态、虚函数、抽象类、析构函数、模板、运算符重载。每个概念单独看都能背,但写程序时真正重要的是它们之间的关系。
这篇文章把课程笔记重组成一张学习地图。主线不是“罗列语法”,而是回答一个问题:
C++ 如何从自定义类型出发,逐步建立对象状态、生命周期、复用关系、多态接口和泛型能力?
第一层:类和对象,先能定义自己的类型class 可以先理解为一种自己定义出来的类型。
12345678910111213141516171819202122232425#include <iostream>#include <string>using namespace std;class Student {public: string name; int age; int score; void introduce() { cout << "我是 " << name ...
背景:先从能写小 GUI 开始学习 Qt 时不一定要一开始就系统啃完整文档。更实用的路线是:先写出一个可运行的小 GUI 程序,再逐步理解常见代码为什么这么写。
这篇文章采用 Qt Widgets + C++ 作为入口。原因很简单:Qt Widgets 更适合快速理解传统桌面程序结构,也能直接暴露 Qt 的几个核心概念:事件循环、信号槽、QObject 对象模型和布局管理器。
一个最小 Qt 程序由什么组成最小 Qt Widgets 程序大致如下:
12345678910111213#include <QApplication>#include <QWidget>int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(400, 300); window.setWindowTitle("Hello Qt"); window.show(); return app.exe ...
背景:Transformer 解决的是什么问题Transformer 最初可以放在 Seq2Seq 问题里理解:输入一个序列,输出另一个序列。机器翻译、文本摘要、对话生成、语音识别都属于这类问题。
传统 RNN/LSTM 按时间步顺序处理序列,天然适合顺序数据,但也带来两个问题:训练不容易完全并行,长距离依赖要经过很多步传递。Transformer 的核心变化是:不再依赖循环结构逐步传信息,而是让序列中的每个位置都可以直接和其他位置建立关系。
这就是自注意力机制的价值。
自注意力:让每个 token 直接看全局自注意力机制做的事情可以概括为:
对序列中每个 token,计算它应该关注序列里哪些位置,再把相关位置的信息加权汇聚回来。
它带来两个直接收益。
第一是并行计算。序列中每个位置的注意力分数可以矩阵化计算,不必像 RNN 那样等待前一个时间步处理完。
第二是全局视野。任意两个 token 之间可以直接计算相关性,长距离信息不必层层传递,因此更适合处理长文本中的依赖关系。
从符号到向量:嵌入层模型不能直接理解“词”这个符号。嵌入层的作用就是把词表中的 token 转成 ...
这份可视化把两条研究线放在同一个视角下看:IPC 关心如何在强几何约束下稳定地求解接触仿真,MolmoMotion 关心如何从视觉、语言和历史轨迹中预测物体未来的 3D 运动。二者的共同点是都没有停留在像素表象,而是把运动写成更明确的几何状态。
下面嵌入的是完整交互页面。如果页面高度受限,建议打开独立页面查看。
打开完整可视化页面
.visualization-frame-wrap {
width: 100%;
min-height: 760px;
margin: 18px 0 8px;
border: 1px solid rgba(23, 33, 43, 0.14);
border-radius: 8px;
overflow: hidden;
background: #fbfaf7;
}
.visualization-frame {
display: block;
width: 100%;
height: 760px;
border: 0;
}
@m ...
虚函数的实现:vtable与vptr1. 要解决的问题先看这段代码:
1234567891011121314151617181920212223#include <iostream>using namespace std;class Animal {public: virtual void speak() const { cout << "Animal" << endl; }};class Dog : public Animal {public: void speak() const override { cout << "Dog" << endl; }};int main() { Animal* p = new Dog(); p->speak(); delete p; return 0;}
问题是:
12 ...
Disboundia 开发日志:博客中的 LaTeX 显示探索日期:2026-06-24作者:DaiShiBo类别:开发日志标签:Hexo AnZhiYu LaTeX MathJax SVG Markdown描述:这篇日志记录了我在博客中接入 LaTeX 公式显示的完整探索过程。它不是一次简单的“打开开关”,而是一次从 Markdown 渲染、主题样式、MathJax 输出模式到本地资源加载的排查。
1. 本次更新概述 (Summary)这次问题最开始出现在科研笔记博客化之后。文章里包含不少 FEM、Neo-Hookean、能量函数和链式法则相关公式,例如:
\Psi(F)
以及:
\frac{\partial Loss}{\partial A}
=
\frac{\partial Loss}{\partial C}
\frac{\partial C}{\partial B}
\frac{\partial B}{\partial A}
这些公式是科研文章里非常重要的表达方式。如果公式无法正确显示,文章就会从“可读的技术记录”变成“夹杂着一堆反斜杠的草稿”。因此,这次目标不是只让页面不报 ...
从 Surface Mesh 到 libuipc 预训练数据:一次数据生成管线搭建记录背景这轮工作的目标很明确:为 IPC / contact-aware 模型构建真实物理 rollout 数据,而不是继续依赖伪动力学或只看静态几何。
我们希望数据能够覆盖:
多物体碰撞;
动量传递;
3D 弹性体形变;
thin shell / cloth 弯曲;
rigid、elastic、shell 混合物理系统。
最终目标不是单纯生成几个能看的 MP4,而是逐步搭建一条可扩展的数据生成管线:几何资产发现、场景采样、真实 libuipc 仿真、MP4 可视化、日志校验、后续训练数据导出。
第一阶段:确认真实 libuipc rollout 可行最开始我们先尝试从 geometry_dataset_factory 中采样 OBJ 几何,生成 scene_manifest.json,再由 C++ 程序调用 libuipc 执行真实仿真。
这一阶段的核心结论是:
Python 侧负责采样和 manifest;
C++ 侧负责真实 libuipc 仿真;
数据输出统一放到 /e ...
背景这几天的学习主要围绕一个问题展开:
如果要用 libuipc 生成多物体随机碰撞数据,并进一步服务于 Neural IPC 或 contact-aware 模型训练,我到底需要理解哪些物理和工程概念?
最开始我只是在追踪数据生成脚本怎么跑,后来发现背后其实连着几层知识:
libuipc 的场景组织方式;
rollout 数据在训练中的意义;
FEM、ABD、shell 和 rigid body 的差别;
Neo-Hookean 等超弹性材料模型在 FEM 中的位置;
Neural Surrogate、Neural Constitutive Model 和 Neural IPC 分别在学什么。
本文把三篇每日学习笔记整合成一条主线:先从 libuipc 工程对象入手,再进入物理建模,最后回到机器学习到底应该学材料、学力,还是学接触。
1. libuipc 里的核心对象libuipc 可以先粗略理解成一套面向 IPC 仿真的物理系统。它里面有四个非常重要的对象:
Scene:静态剧本,定义场景里有什么物体、材料、接触、约束和重力;
Object:物体容器,比如一个 cube ...
Disboundia 开发日志:博客完整度与体验修复日期:2026-06-23作者:DaiShiBo类别:开发日志标签:Hexo AnZhiYu GitHub Pages 本地搜索 不蒜子 文章封面 UI优化 公众号描述:本篇日志记录了 Disboundia 在近期围绕博客页面完整度、访问统计、搜索体验、文章封面与前端细节所做的一轮集中整理。
1. 本次更新概述 (Summary)本次开发的重点不是新增某个单独功能,而是对博客进行一次可用性与完整度整理。在这轮调整中,博客从“能构建、能访问”进一步推进到“页面入口更清晰、视觉元素更统一、统计逻辑更明确、后续内容补全路径更可控”的状态。
这次也暴露出一个很重要的问题:静态博客并不是只有文章文件。主题配置、页面入口、数据文件、静态资源、第三方脚本和部署分支共同决定了最终页面的样子。任何一个环节的误解,都可能导致页面空白、统计异常或样式不符合预期。
2. 关键任务与目标 (Key Tasks & Goals)
检查博客项目结构,梳理待补全页面与数据文件。
将搜索从 DocSearch 调整为本地搜索方案。
修复 Linux ...
从零开始:Windows 11 上配置 Ubuntu 24.04 虚拟机完整指南作者:Disboundary
前言作为一名有志于成为技术死宅男(bushi)的大学生,我决定在自己的 Windows 11 电脑上搭建 Linux 开发环境。经过一整天的折腾,我从一个对 Linux 一无所知的小白,成功配置好了 Ubuntu 24.04 虚拟机,并解决了各种奇奇怪怪的问题。
这篇文章记录了我完整的配置过程,希望能帮到同样想入门 Linux 的你。
一、为什么选择虚拟机?在开始之前,我调研了三种在 Windows 上使用 Linux 的方案:
方案对比
方案
优点
缺点
适合人群
WSL(Windows 子系统)
安装简单、启动快、资源占用少
没有图形桌面、某些功能受限
只需要命令行的开发者
双系统
性能满血、真实体验
有分区风险、只能用一个系统
有经验的用户
虚拟机
完整桌面、安全隔离、可随时重装
性能有损耗、占用资源较多
新手学习首选 ✅
我的选择:虚拟机作为新手,我选择了虚拟机方案,原因如下:
1234✅ 安全:搞坏了可以一键重装,不影响 Windows✅ 完 ...

