|
import streamlit as st |
|
import pandas as pd |
|
|
|
|
|
|
|
def scoring_layout(): |
|
st.markdown("## Scoring") |
|
st.write( |
|
"Our scoring system rewards strong performance across all challenges, with extra weight " |
|
"given to the Evaluation Challenge. The breakdown is as follows:" |
|
) |
|
|
|
|
|
col1, col2, col3 = st.columns(3) |
|
|
|
with col1: |
|
st.markdown("### Compression Challenge") |
|
st.markdown( |
|
""" |
|
- **1st Place**: 10 points |
|
- **2nd Place**: 7 points |
|
- **3rd Place**: 5 points |
|
""" |
|
) |
|
|
|
with col2: |
|
st.markdown("### Sampling Challenge") |
|
st.markdown( |
|
""" |
|
- **1st Place**: 10 points |
|
- **2nd Place**: 7 points |
|
- **3rd Place**: 5 points |
|
""" |
|
) |
|
|
|
with col3: |
|
st.markdown("### Evaluation Challenge") |
|
st.markdown( |
|
""" |
|
- **1st Place**: 20 points |
|
- **2nd Place**: 14 points |
|
- **3rd Place**: 10 points |
|
""" |
|
) |
|
|
|
st.markdown("---") |
|
st.markdown("### Tie-Breakers") |
|
st.write( |
|
"The overall winner will be the team with the highest total points. " |
|
"In the event of a tie, the following tie-breakers will be applied in order:\n\n" |
|
"1. Highest Evaluation Challenge score\n" |
|
"2. Highest Sampling Challenge score\n\n" |
|
"If teams remain tied after these two criteria, a panel review will determine the final ranking." |
|
) |
|
|
|
def main(): |
|
st.set_page_config(page_title="World Model Challenge") |
|
|
|
st.title("World Model Challenge") |
|
st.markdown("### Welcome") |
|
st.write( |
|
"Welcome to the World Model Challenge server. This platform hosts three challenges " |
|
"designed to advance research in world models for robotics: Compression, Sampling, and Evaluation." |
|
) |
|
|
|
st.markdown("### Motivation") |
|
st.write( |
|
"Real-world robotics faces a fundamental challenge: environments are dynamic and change over time, " |
|
"making consistent evaluation of robot performance difficult. World models offer a solution by " |
|
"learning to simulate complex real-world interactions from raw sensor data. We believe these learned simulators will enable " |
|
"robust evaluation and iterative improvement of robot policies without the constraints of a physical testbed." |
|
) |
|
|
|
st.markdown("### The Challenges") |
|
|
|
st.markdown("#### Compression Challenge") |
|
st.write( |
|
"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." |
|
) |
|
|
|
st.markdown("#### Sampling Challenge") |
|
st.write( |
|
"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." |
|
) |
|
|
|
st.markdown("#### Evaluation Challenge") |
|
st.write( |
|
"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." |
|
) |
|
scoring_layout() |
|
st.write( |
|
"The overall leaderboard, which displays the total points accumulated across all challenges, will be launched on March 10th. Below is a preview of the leaderboard format:" |
|
) |
|
|
|
|
|
data = { |
|
"Rank": [1, 2, 3], |
|
"Team Name": ["Team Alpha", "Team Beta", "Team Gamma"], |
|
"Compression Points": [10, 7, 5], |
|
"Sampling Points": [10, 7, 5], |
|
"Evaluation Points": [20, 14, 10], |
|
"Total Points": [40, 28, 20], |
|
} |
|
|
|
leaderboard_df = pd.DataFrame(data) |
|
st.table(leaderboard_df) |
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
main() |
|
|
|
|