Skip to content

Commit c49adff

Browse files
committed
Reframe open source work as project contributions
1 parent 8d5e2e6 commit c49adff

2 files changed

Lines changed: 39 additions & 37 deletions

File tree

‎app/globals.css‎

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,11 @@ body::before {
6565
.hero-scroll { color: rgba(255,255,255,.65); font: 9px monospace; justify-self: end; letter-spacing: .1em; }
6666
.hero-scroll b { color: var(--lime); font-size: 17px; margin-left: 8px; }
6767

68-
.signal-strip { align-items: stretch; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4,1fr) .75fr; min-height: 112px; }
69-
.signal-strip div { align-items: center; border-right: 1px solid var(--line); display: flex; gap: 14px; padding: 20px 34px; }
70-
.signal-strip strong { font-family: monospace; font-size: 30px; font-weight: 400; }
71-
.signal-strip div span { color: var(--muted); font-size: 12px; line-height: 1.4; max-width: 95px; }
72-
.signal-strip > p { align-items: center; color: var(--muted); display: flex; font: 10px monospace; justify-content: center; letter-spacing: .08em; margin: 0; }
73-
.signal-strip > p span { animation: down 1.5s ease-in-out infinite; color: var(--lime); font-size: 18px; margin-left: 10px; }
68+
.signal-strip { align-items: stretch; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4,1fr); min-height: 92px; }
69+
.signal-strip div { align-items: flex-start; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 9px; justify-content: center; padding: 18px 34px; }
70+
.signal-strip div:last-child { border-right: 0; }
71+
.signal-strip strong { color: var(--lime); font: 10px monospace; font-weight: 600; letter-spacing: .1em; }
72+
.signal-strip div span { color: #d0d0cb; font-size: 13px; line-height: 1.35; }
7473

7574
.work-section { padding-bottom: 120px; padding-top: 130px; }
7675
.section-heading { border-top: 1px solid var(--line); display: grid; grid-template-columns: .7fr 1.3fr auto; padding-top: 22px; }
@@ -142,16 +141,20 @@ body::before {
142141
.project-metrics span { background: rgba(255,255,255,.07); color: #d7d7d1; font: 10px monospace; padding: 7px 9px; }
143142
.project-arrow { bottom: 24px; color: var(--lime); font: 10px monospace; position: absolute; }
144143

145-
.oss-section { background: #14151a; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); padding: 125px 0; }
144+
.oss-section { background: #efede7; border-bottom: 1px solid #cfcbc1; border-top: 1px solid #cfcbc1; color: #111217; padding: 125px 0; }
145+
.oss-section .section-heading { border-color: #cfcbc1; }
146+
.oss-section .section-heading p { color: #66645e; }
147+
.oss-section .heading-index { color: #5c36a8; }
146148
.oss-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 60px; }
147-
.oss-item { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 13px; grid-template-columns: 28px 42px minmax(0,1fr) auto 20px; min-height: 105px; padding: 18px 18px 18px 0; transition: background .2s ease, padding .2s ease; }
148-
.oss-item:nth-child(odd) { border-right: 1px solid var(--line); }
149+
.oss-item { align-items: center; border-bottom: 1px solid #cfcbc1; display: grid; gap: 13px; grid-template-columns: 28px 42px minmax(0,1fr) auto 20px; min-height: 108px; padding: 18px 18px 18px 0; transition: background .2s ease, padding .2s ease; }
150+
.oss-item:nth-child(odd) { border-right: 1px solid #cfcbc1; }
149151
.oss-item:nth-child(even) { padding-left: 18px; }
150-
.oss-item:hover { background: rgba(255,255,255,.04); padding-left: 18px; }
151-
.oss-index { color: #6e6f74; font: 10px monospace; }
152+
.oss-item:hover { background: rgba(17,18,23,.045); padding-left: 18px; }
153+
.oss-index { color: #858177; font: 10px monospace; }
152154
.oss-item img { background: #fff; border-radius: 9px; height: 38px; object-fit: contain; padding: 4px; width: 38px; }
153-
.oss-item h3 { font-size: 17px; margin: 0 0 6px; }.oss-item p { color: var(--muted); font-size: 12px; margin: 0; }
154-
.oss-stars { color: #d2d2cc; font: 10px monospace; }.oss-arrow { color: var(--lime); }
155+
.oss-item h3 { font-size: 17px; margin: 0 0 6px; }.oss-item p { color: #66645e; font-size: 12px; margin: 0; }
156+
.oss-role { color: #5c36a8; font: 10px monospace; letter-spacing: .04em; margin-right: 9px; text-transform: uppercase; }
157+
.oss-stars { color: #393a3e; font: 10px monospace; }.oss-arrow { color: #5c36a8; }
155158

156159
.contact-section { padding-bottom: 35px; padding-top: 150px; }
157160
.contact-kicker { color: var(--lime); font: 11px monospace; letter-spacing: .08em; }
@@ -188,7 +191,7 @@ body::before {
188191
.hero-copy { align-self: end; padding-bottom: 170px; padding-top: 140px; }.hero h1 { font-size: 48px; max-width: 330px; }.hero-lead { font-size: 14px; line-height: 1.7; margin-top: 24px; max-width: 335px; }
189192
.kicker { gap: 10px; }.kicker span:nth-child(3) { display: none; }
190193
.hero-meta { gap: 14px; grid-template-columns: 1fr; padding-bottom: 28px; }.hero-meta div:not(:first-child) { display: none; }
191-
.signal-strip div { padding: 20px; }.signal-strip strong { font-size: 24px; }
194+
.signal-strip div { padding: 20px; }
192195
.work-section { padding-bottom: 70px; padding-top: 90px; }.section-heading h2 { font-size: 38px; }
193196
.case-card { min-height: 430px; }.case-card h3 { font-size: 25px; }
194197
.experience-section, .project-section { padding-bottom: 90px; padding-top: 70px; }

‎app/page.tsx‎

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,32 @@ const externalLinkProps = {
88
const selectedCases = [
99
{
1010
index: '01',
11-
eyebrow: 'OpenCV · Core',
11+
eyebrow: 'OpenCV · Contributor',
1212
title: '把十亿次循环,折叠成一次计算',
1313
problem: '极端反射坐标会触发 INT_MIN 溢出;INT_MAX 与短数组组合时,旧实现需要十亿级循环。',
1414
move: '将逐次模拟改写为 64 位周期模运算,在完整 int 坐标域内直接完成映射。',
1515
metric: 'O(N) → O(1)',
16-
href: 'https://github.com/opencv/opencv/pull/29751',
16+
href: 'https://github.com/opencv/opencv',
1717
accent: 'violet',
1818
},
1919
{
2020
index: '02',
21-
eyebrow: 'FunASR · Clustering',
21+
eyebrow: 'FunASR · Contributor',
2222
title: '让长音频不再困在稠密矩阵里',
2323
problem: '已知说话人数时,大输入仍进入谱聚类,绕过规模保护并产生 O(N²) 内存开销。',
2424
move: '按样本规模与 K 是否已知进行三路分流,引入归一化、确定性的固定 K 聚类路径。',
2525
metric: '10,639 × 192',
26-
href: 'https://github.com/modelscope/FunASR/pull/3516',
26+
href: 'https://github.com/modelscope/FunASR',
2727
accent: 'cyan',
2828
},
2929
{
3030
index: '03',
31-
eyebrow: 'OpenAI Agents SDK · Graph',
31+
eyebrow: 'OpenAI Agents SDK · Contributor',
3232
title: '同名,不应该意味着同一个实体',
3333
problem: 'Agent、Tool 与 MCP Server 重名时,Graphviz 会错误合并节点、漏画关系或制造伪自环。',
3434
move: '以实体身份注册表解耦显示名和节点标识,重构图遍历与标识生成链路。',
3535
metric: 'Identity ≠ Label',
36-
href: 'https://github.com/openai/openai-agents-python/pull/4512',
36+
href: 'https://github.com/openai/openai-agents-python',
3737
accent: 'lime',
3838
},
3939
];
@@ -127,14 +127,14 @@ const projects = [
127127
];
128128

129129
const openSource = [
130-
{ name: 'OpenCV', stars: '90.5k', logo: '/logos/opencv.svg', href: 'https://github.com/opencv/opencv/pull/29751', note: '极端反射坐标:O(N) → O(1)' },
131-
{ name: 'OpenAI Agents SDK', stars: '28.8k', logo: '/logos/openai.png', href: 'https://github.com/openai/openai-agents-python/pull/4512', note: '修复同名实体图节点碰撞' },
132-
{ name: 'PEFT', stars: '21.6k', logo: '/logos/huggingface.png', href: 'https://github.com/huggingface/peft/pull/3559', note: '阻止重复 Adapter 破坏权重' },
133-
{ name: 'Ultralytics YOLO', stars: '60.8k', logo: '/logos/ultralytics.png', href: 'https://github.com/ultralytics/ultralytics/pull/25855', note: '修复非等比例坐标反变换' },
134-
{ name: 'timm', stars: '37.1k', logo: '/logos/huggingface.png', href: 'https://github.com/huggingface/pytorch-image-models/pull/2739', note: '修正 CutMix 边界采样偏差' },
135-
{ name: 'Supervision', stars: '49.6k', logo: '/logos/supervision.png', href: 'https://github.com/roboflow/supervision/pull/2491', note: '稳定大坐标多边形质心计算' },
136-
{ name: 'FunASR', stars: '20.0k', logo: '/logos/funasr.png', href: 'https://github.com/modelscope/FunASR/pull/3516', note: '扩展长音频说话人聚类' },
137-
{ name: 'Burn', stars: '15.8k', logo: '/logos/burn.png', href: 'https://github.com/tracel-ai/burn/pull/5394', note: '保持卷积快速路径 IEEE 语义' },
130+
{ name: 'OpenCV', stars: '90.5k', logo: '/logos/opencv.svg', href: 'https://github.com/opencv/opencv', note: '极端反射坐标:O(N) → O(1)' },
131+
{ name: 'OpenAI Agents SDK', stars: '28.8k', logo: '/logos/openai.png', href: 'https://github.com/openai/openai-agents-python', note: '修复同名实体图节点碰撞' },
132+
{ name: 'PEFT', stars: '21.6k', logo: '/logos/huggingface.png', href: 'https://github.com/huggingface/peft', note: '阻止重复 Adapter 破坏权重' },
133+
{ name: 'Ultralytics YOLO', stars: '60.8k', logo: '/logos/ultralytics.png', href: 'https://github.com/ultralytics/ultralytics', note: '修复非等比例坐标反变换' },
134+
{ name: 'timm', stars: '37.1k', logo: '/logos/huggingface.png', href: 'https://github.com/huggingface/pytorch-image-models', note: '修正 CutMix 边界采样偏差' },
135+
{ name: 'Supervision', stars: '49.6k', logo: '/logos/supervision.png', href: 'https://github.com/roboflow/supervision', note: '稳定大坐标多边形质心计算' },
136+
{ name: 'FunASR', stars: '20.0k', logo: '/logos/funasr.png', href: 'https://github.com/modelscope/FunASR', note: '扩展长音频说话人聚类' },
137+
{ name: 'Burn', stars: '15.8k', logo: '/logos/burn.png', href: 'https://github.com/tracel-ai/burn', note: '保持卷积快速路径 IEEE 语义' },
138138
];
139139

140140
export default function Home() {
@@ -186,17 +186,16 @@ export default function Home() {
186186
</section>
187187

188188
<section className="signal-strip" aria-label="个人成果概览">
189-
<div><strong>04</strong><span>主要学术成果</span></div>
190-
<div><strong>08</strong><span>上游贡献已合并</span></div>
191-
<div><strong>90.5K</strong><span>最高影响项目 Stars</span></div>
192-
<div><strong>02</strong><span>大模型算法实习</span></div>
193-
<p>SCROLL TO EXPLORE <span>↓</span></p>
189+
<div><strong>RESEARCH</strong><span>EMNLP · ACL · AAAI · ICML</span></div>
190+
<div><strong>OPEN SOURCE</strong><span>Project Contributor</span></div>
191+
<div><strong>FOCUS</strong><span>Pretrain · Agent · Safety</span></div>
192+
<div><strong>ENGINEERING</strong><span>Python · PyTorch · Rust</span></div>
194193
</section>
195194

196195
<section className="work-section section-shell" id="work">
197196
<div className="section-heading">
198197
<p>SELECTED PROBLEM SOLVING / 2025—2026</p>
199-
<h2>不是 PR 列表,<br />而是三个被解决的问题。</h2>
198+
<h2>三个真实问题,<br />三条可验证的解决路径。</h2>
200199
<span className="heading-index">[ 01 ]</span>
201200
</div>
202201

@@ -284,16 +283,16 @@ export default function Home() {
284283
<section className="oss-section" id="opensource">
285284
<div className="section-shell">
286285
<div className="section-heading section-heading-compact">
287-
<p>OPEN SOURCE / MERGED UPSTREAM</p>
288-
<h2>把修复送回它发生的地方。</h2>
286+
<p>OPEN SOURCE / PROJECT CONTRIBUTOR</p>
287+
<h2>作为 Contributor,<br />解决真实工程边界。</h2>
289288
<span className="heading-index">[ 05 ]</span>
290289
</div>
291290
<div className="oss-grid">
292291
{openSource.map((item, index) => (
293292
<a className="oss-item" href={item.href} key={item.name} {...externalLinkProps}>
294293
<span className="oss-index">{String(index + 1).padStart(2, '0')}</span>
295294
<img src={item.logo} alt="" />
296-
<div><h3>{item.name}</h3><p>{item.note}</p></div>
295+
<div><h3>{item.name}</h3><p><span className="oss-role">Contributor</span>{item.note}</p></div>
297296
<span className="oss-stars">{item.stars} ★</span>
298297
<span className="oss-arrow">↗</span>
299298
</a>

0 commit comments

Comments
 (0)