| import pandas as pd |
| import numpy as np |
|
|
| |
| data = [ |
| |
| ["Memflow", 61.72, 56.06, 39.48, 51.60, 57.95, 20.89, 55.06, 30.08, 62.75, 72.04, 46.31, np.nan], |
| ["Self Forcing", 34.97, 33.02, 43.92, 54.58, 67.44, 55.19, 66.83, 30.15, 50.19, 66.84, 43.91, np.nan], |
| ["Skyreels V2", 70.03, 53.70, 24.57, 53.76, 49.01, 56.39, 46.44, 20.33, 68.35, 79.52, 44.68, np.nan], |
| ["Longlive", 63.57, 55.41, 42.51, 55.89, 46.68, 27.51, 59.44, 25.26, 70.32, 74.69, 46.97, np.nan], |
| ["Longcat-Video", 46.96, 43.13, 26.56, 52.98, 28.28, 9.26, 56.10, 27.46, 84.17, 87.83, 46.25, np.nan], |
| ["Cosmos-Predict 2.5", 51.90, 47.31, 16.95, 45.42, 9.73, 14.68, 55.95, 22.66, 83.67, 80.81, 45.08, np.nan], |
| ["Causal Forcing", 62.23, 53.36, 42.53, 64.37, 18.10, 2.88, 57.44, 27.48, 64.79, 73.10, 44.90, np.nan], |
| ["Helios", 79.43, 63.70, 31.33, 41.64, 24.79, 32.46, 41.79, 25.26, 58.27, 75.08, 43.17, np.nan], |
| |
| ["Matrix-Game 2.0", 14.62, 28.99, 1.22, 0.94, 14.78, 3.08, 38.79, 73.78, 10.00, 26.40, np.nan, 47.86], |
| ["Matrix-Game 3.0", 44.15, 58.22, 42.38, 47.91, 61.99, 32.86, 62.06, 95.17, 37.50, 48.80, np.nan, 81.93], |
| ["HY-WorldPlay", 47.12, 68.54, 52.46, 66.58, 83.86, 68.17, 82.67, 98.23, 49.50, 62.40, np.nan, 85.69], |
| ["Yume-1.5", 60.96, 49.99, 17.41, 40.57, 51.86, 24.55, 51.21, 92.05, 97.90, 95.00, np.nan, 62.20], |
| ["Lingbot-World", 33.20, 44.54, 11.57, 33.53, 22.12, 7.57, 40.06, 85.87, 96.00, 89.40, np.nan, 63.32], |
| ["Infinite-World", 35.70, 61.88, 23.08, 46.85, 74.04, 61.51, 62.63, 96.87, 48.00, 78.40, np.nan, 86.37], |
| ] |
|
|
| columns = [ |
| "Model Name", "Object Geometry", "Object Texture", "Human Identity", "Human Appearance", |
| "Epipolar Geometry", "Reprojection Consistency", "Lighting Consistency", "Style Consistency", |
| "State Progress", "Physical Plausibility", "Text Interaction", "Action Interaction" |
| ] |
|
|
| df = pd.DataFrame(data, columns=columns) |
|
|
| |
| df["Entity Score"] = df[["Object Geometry", "Object Texture", "Human Identity", "Human Appearance"]].mean(axis=1) |
| df["Environment Score"] = df[["Epipolar Geometry", "Reprojection Consistency", "Lighting Consistency", "Style Consistency"]].mean(axis=1) |
| df["Causal Score"] = df[["State Progress", "Physical Plausibility", "Text Interaction", "Action Interaction"]].mean(axis=1) |
|
|
| df["Total M-Score"] = df[["Entity Score", "Environment Score", "Causal Score"]].mean(axis=1) |
|
|
| |
| for col in ["Entity Score", "Environment Score", "Causal Score", "Total M-Score"]: |
| df[col] = df[col].round(2) |
|
|
| |
| df = df.sort_values(by="Total M-Score", ascending=False).reset_index(drop=True) |
| df["Rank"] = df.index + 1 |
|
|
| |
| df["Model Link"] = "" |
| |
| action_models = ["Matrix", "HY-WorldPlay", "Yume", "Lingbot", "Infinite"] |
| df["Model Type"] = df["Model Name"].apply(lambda x: "action-conditioned" if any(a in x for a in action_models) else "text-conditioned") |
| df["Certification"] = "MBench Paper" |
| df["Accessibility"] = "TBD" |
| df["Sampled by"] = "MBench Team" |
| df["Evaluated by"] = "MBench Team" |
| df["Date"] = "2026-05-28" |
|
|
| |
| |
| df["Trigger Coverage"] = 0 |
| df["Memory Reliability"] = 0 |
|
|
| df = df.fillna(0) |
| |
| |
|
|
| |
| final_cols = [ |
| "Rank", "Model Name", "Model Link", "Model Type", "Certification", "Accessibility", |
| "Sampled by", "Evaluated by", "Date", "Total M-Score", "Entity Score", "Environment Score", |
| "Causal Score", "Object Geometry", "Object Texture", "Human Identity", "Human Appearance", |
| "Epipolar Geometry", "Reprojection Consistency", "Lighting Consistency", "Style Consistency", |
| "State Progress", "Physical Plausibility", "Text Interaction", "Action Interaction", |
| "Trigger Coverage", "Memory Reliability" |
| ] |
| df = df[final_cols] |
| df.to_csv("MBench_Leaderboard/seed/results.csv", index=False) |
|
|