Skip to content

Commit 226a3a1

Browse files
committed
a major update of format
1 parent f4c8a60 commit 226a3a1

36 files changed

Lines changed: 1335 additions & 311 deletions
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Update project index
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "pages/**"
9+
- "scripts/generate-project-index.mjs"
10+
- ".github/workflows/update-project-index.yml"
11+
workflow_dispatch:
12+
13+
permissions:
14+
contents: write
15+
16+
jobs:
17+
update-project-index:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
- uses: actions/setup-node@v4
22+
with:
23+
node-version: "20"
24+
- run: node scripts/generate-project-index.mjs
25+
- name: Commit generated index
26+
run: |
27+
if git diff --quiet -- assets/data/projects.json assets/data/projects.js; then
28+
echo "Project index is already up to date."
29+
exit 0
30+
fi
31+
git config user.name "github-actions[bot]"
32+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
33+
git add assets/data/projects.json assets/data/projects.js
34+
git commit -m "Update project index"
35+
git push

assets/css/style.css

Lines changed: 183 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,12 @@ transition: all 0.35s ease 0s;
140140
.header-text h3 span {
141141
color: #88ffcc;
142142
}
143-
.header-text p {
144-
margin-bottom:30px;
145-
}
146-
.header-text h2 span {
147-
color: darkblue;
148-
}
143+
.header-text p {
144+
margin-bottom:30px;
145+
}
146+
.header-text h2 span {
147+
color: darkblue;
148+
}
149149
.header-btn {
150150
border: 2px solid #fff;
151151
color: #fff;
@@ -914,14 +914,161 @@ blockquote {
914914
font-size: 20px;
915915
font-weight: bold;
916916
}
917-
#blog .row > p {
918-
color: #444444;
919-
font-size: 14px;
920-
}
921-
/*----------- contact ------------*/
922-
#contact
923-
{
924-
background: url("../img/header3.jpg") no-repeat scroll center center / cover ;
917+
#blog .row > p {
918+
color: #444444;
919+
font-size: 14px;
920+
}
921+
/*----------- project index ------------*/
922+
.project-index-section {
923+
background: #f7fbff;
924+
color: #18232f;
925+
overflow: hidden;
926+
padding: 100px 0;
927+
}
928+
.project-index-section .title {
929+
padding-bottom: 40px;
930+
}
931+
.project-index-section .title h2 {
932+
color: #111;
933+
}
934+
.project-index-section .title p {
935+
color: #4b5968;
936+
font-size: 16px;
937+
margin: 0 auto;
938+
max-width: 760px;
939+
}
940+
.project-index-section code {
941+
background: rgba(0, 161, 255, 0.1);
942+
border-radius: 3px;
943+
color: #005f93;
944+
padding: 2px 5px;
945+
}
946+
.project-index-updated {
947+
color: #6d7b89;
948+
display: inline-block;
949+
font-size: 12px;
950+
letter-spacing: 0.04em;
951+
margin-top: 12px;
952+
text-transform: uppercase;
953+
}
954+
.project-index-grid {
955+
display: grid;
956+
gap: 24px;
957+
grid-template-columns: repeat(3, minmax(0, 1fr));
958+
padding: 0 15px;
959+
}
960+
.project-index-loading,
961+
.project-index-empty {
962+
color: #526272;
963+
font-size: 16px;
964+
grid-column: 1 / -1;
965+
text-align: center;
966+
}
967+
.project-index-empty {
968+
display: none;
969+
margin: 20px 0 0;
970+
}
971+
.project-card {
972+
background: #fff;
973+
border: 1px solid #dbe6ef;
974+
border-radius: 8px;
975+
box-shadow: 0 18px 45px rgba(15, 42, 67, 0.08);
976+
min-height: 100%;
977+
overflow: hidden;
978+
transition: all 0.25s ease;
979+
}
980+
.project-card:hover {
981+
border-color: #7bbfe7;
982+
box-shadow: 0 22px 55px rgba(0, 91, 143, 0.16);
983+
transform: translateY(-3px);
984+
}
985+
.project-card a,
986+
.project-card a:hover,
987+
.project-card a:focus {
988+
color: inherit;
989+
display: block;
990+
min-height: 100%;
991+
text-decoration: none;
992+
}
993+
.project-card-media {
994+
align-items: center;
995+
background: #dce8f1;
996+
display: flex;
997+
height: 170px;
998+
justify-content: center;
999+
overflow: hidden;
1000+
}
1001+
.project-card-media img {
1002+
height: 100%;
1003+
object-fit: cover;
1004+
width: 100%;
1005+
}
1006+
.project-card-fallback {
1007+
background: linear-gradient(135deg, #10364b 0%, #277a6f 55%, #e1a241 100%);
1008+
}
1009+
.project-card-fallback span {
1010+
color: #fff;
1011+
font-size: 44px;
1012+
font-weight: 700;
1013+
letter-spacing: 0.08em;
1014+
}
1015+
.project-card-body {
1016+
padding: 24px;
1017+
}
1018+
.project-card-meta {
1019+
align-items: center;
1020+
color: #6b7a88;
1021+
display: flex;
1022+
font-size: 12px;
1023+
justify-content: space-between;
1024+
letter-spacing: 0.04em;
1025+
margin-bottom: 12px;
1026+
text-transform: uppercase;
1027+
}
1028+
.project-status {
1029+
background: #eef7f3;
1030+
border: 1px solid #cfe9de;
1031+
border-radius: 3px;
1032+
color: #277a5d;
1033+
padding: 2px 7px;
1034+
}
1035+
.project-card h3 {
1036+
color: #101820;
1037+
font-size: 20px;
1038+
font-weight: 700;
1039+
line-height: 1.35;
1040+
margin: 0 0 12px;
1041+
}
1042+
.project-card p {
1043+
color: #4a5866;
1044+
font-size: 14px;
1045+
line-height: 1.7;
1046+
margin: 0 0 18px;
1047+
}
1048+
.project-tags {
1049+
display: flex;
1050+
flex-wrap: wrap;
1051+
gap: 8px;
1052+
margin-bottom: 18px;
1053+
}
1054+
.project-tags span {
1055+
background: #f5f0e6;
1056+
border: 1px solid #e4d8c4;
1057+
border-radius: 3px;
1058+
color: #7b5a20;
1059+
font-size: 12px;
1060+
padding: 3px 8px;
1061+
}
1062+
.project-card-link {
1063+
color: #0076b6;
1064+
display: inline-block;
1065+
font-size: 14px;
1066+
font-weight: 700;
1067+
}
1068+
/*----------- contact ------------*/
1069+
#contact
1070+
{
1071+
background: url("../img/header3.jpg") no-repeat scroll center center / cover ;
9251072
color: #fff;
9261073
overflow: hidden;
9271074
padding:100px 0;
@@ -1078,11 +1225,14 @@ width:50%;
10781225
padding: 0 10px !important;
10791226
}
10801227
}
1081-
@media (max-width:980px)
1082-
{
1083-
#about img {
1084-
left: 0;
1085-
position: relative;
1228+
@media (max-width:980px)
1229+
{
1230+
.project-index-grid {
1231+
grid-template-columns: repeat(2, minmax(0, 1fr));
1232+
}
1233+
#about img {
1234+
left: 0;
1235+
position: relative;
10861236
width: 100%;
10871237
}
10881238
.img-right {
@@ -1119,11 +1269,20 @@ width:50%;
11191269
width: 50%;
11201270
}
11211271
}
1122-
@media (max-width:640px)
1123-
{
1124-
.for-box-crecl {
1125-
left: 43%;
1126-
}
1272+
@media (max-width:640px)
1273+
{
1274+
.project-index-section {
1275+
padding: 70px 0;
1276+
}
1277+
.project-index-grid {
1278+
grid-template-columns: 1fr;
1279+
}
1280+
.project-card-media {
1281+
height: 150px;
1282+
}
1283+
.for-box-crecl {
1284+
left: 43%;
1285+
}
11271286
.header-text {
11281287
background: rgba(0, 0, 0, 0.5) none repeat scroll 0 0;
11291288
display: block;

assets/data/projects.js

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
window.MATRIX_PROJECT_INDEX = {
2+
"generatedAt": "2026-05-14T07:21:22.848Z",
3+
"source": "scripts/generate-project-index.mjs",
4+
"projects": [
5+
{
6+
"slug": "Incanation",
7+
"title": "Incantation: Natural Language as the Action Interface for Multi-Entity Video World Models",
8+
"description": "Incantation shows that per-frame, per-entity natural language is a stronger action interface than closed action IDs for multi-entity video world models, enabling cross-entity transfer, out-of-vocabulary action prompts, and parallel control.",
9+
"url": "pages/Incanation/",
10+
"image": "pages/Incanation/static/images/figs/teaser.png",
11+
"status": "2026 preprint",
12+
"tags": [
13+
"world models",
14+
"language control",
15+
"multi-entity"
16+
],
17+
"updatedAt": "2026-05-14"
18+
},
19+
{
20+
"slug": "Mambo-g",
21+
"title": "MAMBO-G: Magnitude-Aware Mitigation for Boosted Guidance",
22+
"description": "MAMBO-G is a training-free, plug-and-play adaptive guidance schedule for fast text-to-image and text-to-video generation. It damps risky early guidance updates by measuring the update-to-prediction magnitude ratio.",
23+
"url": "pages/Mambo-g/",
24+
"image": "pages/Mambo-g/static/images/figs/0_unify_guidance_10.png",
25+
"status": "2026 preprint",
26+
"tags": [
27+
"diffusion",
28+
"guidance",
29+
"acceleration"
30+
],
31+
"updatedAt": "2026-05-14"
32+
},
33+
{
34+
"slug": "RAIN",
35+
"title": "RAIN: Real-time Animation Of Infinite Video Stream",
36+
"description": "A real-time animation system for infinite video streams, enabling low-latency virtual avatar animation from a single image on consumer-grade devices.",
37+
"url": "pages/RAIN/",
38+
"image": "pages/RAIN/images/pipeline.png",
39+
"status": "",
40+
"tags": [
41+
"animation",
42+
"video stream",
43+
"avatars"
44+
],
45+
"updatedAt": "2026-05-14"
46+
},
47+
{
48+
"slug": "TheMatrix",
49+
"title": "The Matrix: Infinite-Horizon World Generation with Real-Time Moving Control",
50+
"description": "A neural interactive simulation project for infinite-horizon world generation, real-time motion control, and AAA-game-scale visual environments.",
51+
"url": "pages/TheMatrix/",
52+
"image": "pages/TheMatrix/img/thematrix.png",
53+
"status": "",
54+
"tags": [
55+
"world models",
56+
"real-time control",
57+
"simulation"
58+
],
59+
"updatedAt": "2026-05-14"
60+
},
61+
{
62+
"slug": "TIE",
63+
"title": "TIE: Time Interval Encoding for Video Generation over Events",
64+
"description": "TIE elevates time intervals to first-class primitives in DiT cross-attention. A principled, plug-and-play interval-aware extension of RoPE that unlocks concurrent and overlapping events in video generation.",
65+
"url": "pages/TIE/",
66+
"image": "pages/TIE/static/images/figs/teaser.png",
67+
"status": "arXiv 2605.10543",
68+
"tags": [
69+
"video generation",
70+
"time intervals",
71+
"events"
72+
],
73+
"updatedAt": "2026-05-14"
74+
},
75+
{
76+
"slug": "TheMatrixDataset",
77+
"title": "The Matrix Dataset",
78+
"description": "Dataset documentation for Matrix world-model research, covering collection, processing, source games, controls, and release information.",
79+
"url": "pages/TheMatrixDataset/",
80+
"image": "pages/TheMatrixDataset/matrix.jpg",
81+
"status": "",
82+
"tags": [
83+
"dataset",
84+
"world models",
85+
"game data"
86+
],
87+
"updatedAt": "2026-05-13"
88+
}
89+
]
90+
};

0 commit comments

Comments
 (0)