Jack Monas
commited on
Commit
·
b3e6d70
1
Parent(s):
aebeebf
rules
Browse files
app.py
CHANGED
@@ -2,20 +2,62 @@ import streamlit as st
|
|
2 |
import pandas as pd
|
3 |
import streamlit.components.v1 as components
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
def scoring_section():
|
7 |
-
|
8 |
st.markdown("#### Scoring")
|
9 |
-
|
10 |
-
# Intro text
|
11 |
st.write(
|
12 |
"Our scoring system rewards performance in all three challenges, with extra emphasis on the Evaluation Challenge. "
|
13 |
"A team's final rank is determined by the total points they earn across the challenges."
|
14 |
)
|
15 |
-
|
16 |
-
# Points Breakdown in a table
|
17 |
st.markdown("#### Points Breakdown")
|
18 |
-
# Create three columns for a more interesting layout
|
19 |
col1, col2, col3 = st.columns(3)
|
20 |
|
21 |
with col1:
|
@@ -47,7 +89,6 @@ def scoring_section():
|
|
47 |
- **3rd Place**: 10 points
|
48 |
"""
|
49 |
)
|
50 |
-
# Tie-Breakers in an expander for a cleaner layout
|
51 |
with st.expander("Tie-Breakers"):
|
52 |
st.write(
|
53 |
"The overall winner will be the team with the highest total points. "
|
@@ -56,77 +97,30 @@ def scoring_section():
|
|
56 |
"2. Highest Sampling Challenge score\n"
|
57 |
"3. Highest Compression Challenge score\n\n"
|
58 |
)
|
59 |
-
|
60 |
-
# Overall Leaderboard Section
|
61 |
st.write(
|
62 |
"The leaderboard, which shows the total points across all challenges, will go live on **March 10th**. "
|
63 |
"Additionally, each challenge—**Compression**, **Sampling**, and **Evaluation**—will have its own leaderboard on their "
|
64 |
"respective Hugging Face submission servers."
|
65 |
)
|
66 |
|
67 |
-
|
68 |
-
|
69 |
def main():
|
70 |
st.set_page_config(page_title="World Model Challenge")
|
71 |
|
72 |
-
|
73 |
-
st.
|
74 |
-
st.
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
)
|
88 |
-
st.markdown("---")
|
89 |
-
|
90 |
-
st.markdown("### The Challenges")
|
91 |
-
|
92 |
-
st.markdown("#### Compression Challenge")
|
93 |
-
st.write(
|
94 |
-
"In the Compression Challenge, your task is to train a model to compress our robots logs effectively while preserving the critical details needed to understand and predict future interactions. Success in this challenge is measured by the loss of your model—the lower the loss, the better your model captures the complexities of real-world robot behavior."
|
95 |
-
)
|
96 |
-
|
97 |
-
st.markdown("#### Sampling Challenge")
|
98 |
-
st.write(
|
99 |
-
"In the Sampling Challenge, your task is to predict a future video frame two seconds in the future given a short clip of robot interactions. The goal is to produce a coherent and plausible continuation of the video, which accurately reflects the dynamics of the scene. Your submission will be judged on how closely it matches the actual frame."
|
100 |
-
)
|
101 |
-
|
102 |
-
st.markdown("#### Evaluation Challenge")
|
103 |
-
st.write(
|
104 |
-
"The Evaluation Challenge tackles the ultimate question: Can you predict a robot's performance in the real world without physically deploying it? In this challenge, you will be provided with many different policies for a specific task. Your task is to rank these policies according to their expected real-world performance. This ranking will be compared with the actual ranking of the policies."
|
105 |
-
)
|
106 |
-
st.markdown("---")
|
107 |
|
108 |
-
|
109 |
-
st.markdown("### Datasets")
|
110 |
-
st.write(
|
111 |
-
"We offer two key datasets to support the 1X World Model Challenge:\n\n"
|
112 |
-
"**Raw Data:** The [world_model_raw_data](https://huggingface.co/datasets/1x-technologies/world_model_raw_data) dataset "
|
113 |
-
"provides raw sensor data, video logs, and annotated robot state sequences gathered from diverse real-world scenarios. "
|
114 |
-
"This dataset is split into 100 shards—each containing a 512x512 MP4 video, a segment index mapping, and state arrays—"
|
115 |
-
"and is licensed under CC-BY-NC-SA 4.0.\n\n"
|
116 |
-
"**Tokenized Data:** The [world_model_tokenized_data](https://huggingface.co/datasets/1x-technologies/world_model_tokenized_data) dataset "
|
117 |
-
"tokenizes the raw video sequences generated using the NVIDIA Cosmos Tokenizer. This compact representation of the raw data "
|
118 |
-
"is optimal for the compression challenge and is released under the Apache 2.0 license.\n\n"
|
119 |
-
)
|
120 |
-
|
121 |
-
st.markdown("---")
|
122 |
-
|
123 |
-
|
124 |
-
scoring_section()
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
if __name__ == '__main__':
|
129 |
main()
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
2 |
import pandas as pd
|
3 |
import streamlit.components.v1 as components
|
4 |
|
5 |
+
def overview_section():
|
6 |
+
st.title("World Model Challenge")
|
7 |
+
st.markdown("### Welcome")
|
8 |
+
st.write(
|
9 |
+
"Welcome to the World Model Challenge server. This platform hosts three challenges "
|
10 |
+
"designed to advance research in world models for robotics: Compression, Sampling, and Evaluation."
|
11 |
+
)
|
12 |
+
|
13 |
+
def motivation_section():
|
14 |
+
st.markdown("---")
|
15 |
+
st.markdown("### Motivation")
|
16 |
+
st.write(
|
17 |
+
"Real-world robotics faces a fundamental challenge: environments are dynamic and change over time, "
|
18 |
+
"making consistent evaluation of robot performance difficult. World models offer a solution by "
|
19 |
+
"learning to simulate complex real-world interactions from raw sensor data. We believe these learned simulators will enable "
|
20 |
+
"robust evaluation and iterative improvement of robot policies without the constraints of a physical testbed."
|
21 |
+
)
|
22 |
+
|
23 |
+
def challenges_section():
|
24 |
+
st.markdown("---")
|
25 |
+
st.markdown("### The Challenges")
|
26 |
+
st.markdown("#### Compression Challenge")
|
27 |
+
st.write(
|
28 |
+
"In the Compression Challenge, your task is to train a model to compress our robots' logs effectively while preserving the critical details needed to understand and predict future interactions. Success in this challenge is measured by the loss of your model—the lower the loss, the better your model captures the complexities of real-world robot behavior."
|
29 |
+
)
|
30 |
+
st.markdown("#### Sampling Challenge")
|
31 |
+
st.write(
|
32 |
+
"In the Sampling Challenge, your task is to predict a future video frame two seconds in the future given a short clip of robot interactions. The goal is to produce a coherent and plausible continuation of the video, which accurately reflects the dynamics of the scene. Your submission will be judged on how closely it matches the actual frame."
|
33 |
+
)
|
34 |
+
st.markdown("#### Evaluation Challenge")
|
35 |
+
st.write(
|
36 |
+
"The Evaluation Challenge tackles the ultimate question: Can you predict a robot's performance in the real world without physically deploying it? In this challenge, you will be provided with many different policies for a specific task. Your task is to rank these policies according to their expected real-world performance. This ranking will be compared with the actual ranking of the policies."
|
37 |
+
)
|
38 |
+
|
39 |
+
def datasets_section():
|
40 |
+
st.markdown("---")
|
41 |
+
st.markdown("### Datasets")
|
42 |
+
st.write(
|
43 |
+
"We offer two key datasets to support the 1X World Model Challenge:\n\n"
|
44 |
+
"**Raw Data:** The [world_model_raw_data](https://huggingface.co/datasets/1x-technologies/world_model_raw_data) dataset "
|
45 |
+
"provides raw sensor data, video logs, and annotated robot state sequences gathered from diverse real-world scenarios. "
|
46 |
+
"This dataset is split into 100 shards—each containing a 512x512 MP4 video, a segment index mapping, and state arrays—"
|
47 |
+
"and is licensed under CC-BY-NC-SA 4.0.\n\n"
|
48 |
+
"**Tokenized Data:** The [world_model_tokenized_data](https://huggingface.co/datasets/1x-technologies/world_model_tokenized_data) dataset "
|
49 |
+
"tokenizes the raw video sequences generated using the NVIDIA Cosmos Tokenizer. This compact representation of the raw data "
|
50 |
+
"is optimal for the Compression Challenge and is released under the Apache 2.0 license.\n\n"
|
51 |
+
)
|
52 |
|
53 |
def scoring_section():
|
54 |
+
st.markdown("---")
|
55 |
st.markdown("#### Scoring")
|
|
|
|
|
56 |
st.write(
|
57 |
"Our scoring system rewards performance in all three challenges, with extra emphasis on the Evaluation Challenge. "
|
58 |
"A team's final rank is determined by the total points they earn across the challenges."
|
59 |
)
|
|
|
|
|
60 |
st.markdown("#### Points Breakdown")
|
|
|
61 |
col1, col2, col3 = st.columns(3)
|
62 |
|
63 |
with col1:
|
|
|
89 |
- **3rd Place**: 10 points
|
90 |
"""
|
91 |
)
|
|
|
92 |
with st.expander("Tie-Breakers"):
|
93 |
st.write(
|
94 |
"The overall winner will be the team with the highest total points. "
|
|
|
97 |
"2. Highest Sampling Challenge score\n"
|
98 |
"3. Highest Compression Challenge score\n\n"
|
99 |
)
|
|
|
|
|
100 |
st.write(
|
101 |
"The leaderboard, which shows the total points across all challenges, will go live on **March 10th**. "
|
102 |
"Additionally, each challenge—**Compression**, **Sampling**, and **Evaluation**—will have its own leaderboard on their "
|
103 |
"respective Hugging Face submission servers."
|
104 |
)
|
105 |
|
|
|
|
|
106 |
def main():
|
107 |
st.set_page_config(page_title="World Model Challenge")
|
108 |
|
109 |
+
# Sidebar navigation
|
110 |
+
st.sidebar.title("Navigation")
|
111 |
+
section = st.sidebar.radio("Jump to Section",
|
112 |
+
["Overview", "Motivation", "Challenges", "Datasets", "Scoring"])
|
113 |
+
|
114 |
+
if section == "Overview":
|
115 |
+
overview_section()
|
116 |
+
elif section == "Motivation":
|
117 |
+
motivation_section()
|
118 |
+
elif section == "Challenges":
|
119 |
+
challenges_section()
|
120 |
+
elif section == "Datasets":
|
121 |
+
datasets_section()
|
122 |
+
elif section == "Scoring":
|
123 |
+
scoring_section()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
if __name__ == '__main__':
|
126 |
main()
|
|
|
|
|
|