| # Meta PyTorch OpenEnv Hackathon x SST | India AI Hackathon '26 |
|
|
| **Source:** https://www.scaler.com/school-of-technology/meta-pytorch-hackathon#open-ev |
| **Scraped:** 2026-03-24 |
|
|
| --- |
|
|
| ## Overview |
|
|
| India's Biggest MEGA AI Hackathon β build at the bleeding edge of AI using Meta's **OpenEnv** framework. The foundation for next-gen RL environments used by leading AI labs. |
|
|
| - **Registration:** Free |
| - **Registration Deadline:** Friday, 3rd April 2026 |
| - **Team Size:** 1-3 members (solo or team) |
| - **Total Prize Pool:** $30,000 |
| - **Finale Location:** Scaler School of Technology, Bangalore (in-person) |
|
|
| --- |
|
|
| ## Key Incentives |
|
|
| | Benefit | Details | |
| |---------|---------| |
| | Interview Access | Winners get a **direct interview opportunity at Meta & Hugging Face** AI teams | |
| | Free Training | Prep courses from Hugging Face & PyTorch included at every stage | |
| | Prize Pool | **$30,000** total | |
| | Open Source | Your code ships to a Meta-backed project, visible on your GitHub profile | |
| | Code Review | Work reviewed by Meta engineers shaping agentic AI | |
| | Networking | Connect with India's best AI builders over 2 days in Bangalore | |
|
|
| --- |
|
|
| ## Prize Breakdown |
|
|
| | Position | Prize | |
| |----------|-------| |
| | 1st Prize | Top tier (part of $30K pool) | |
| | 2nd Prize | Part of $30K pool | |
| | 3rd Prize | Part of $30K pool | |
| | 4th - 8th | **$2,000 each** ($10,000 total) | |
| | 9th - 15th | **$650 each** ($4,550 total) | |
|
|
| *Additional: Exclusive merch for all finalists. Work reviewed by Meta's global team.* |
|
|
| --- |
|
|
| ## Schedule / Timeline |
|
|
| | Phase | Date | Details | |
| |-------|------|---------| |
| | **Registrations Open** | Sat, 14th Mar - Fri, 3rd Apr | Sign up solo or team (up to 3). Access free prep courses. Join Discord. | |
| | **Round 1** (LIVE) | Wed, 25th Mar - Wed, 8th Apr | Build a Mini-RL environment with defined tasks, graders, and reward logic. Evaluation includes programmatic checks & LLM scoring. | |
| | **Round 1 Results** | Fri, 10th Apr | Results declared. Access Round 2 prep guidelines from dashboard. | |
| | **Advanced RL Bootcamp** | Sat, 18 Apr - Sun, 19 Apr | Intensive **online** weekend bootcamp for shortlisted teams. Deep-dive into advanced RL concepts, meta-learning strategies, and Round 2 optimization. Expert sessions from Meta engineers. | |
| | **Round 2 - Grand Finale** | Sat, 25 Apr - Sun, 26 Apr | **48-hour on-campus hackathon** at Scaler School of Technology, Bangalore. Mentorship from Meta engineers. Judging by Meta's global team. Closing awards ceremony. | |
|
|
| --- |
|
|
| ## What is OpenEnv? |
|
|
| OpenEnv is an **open-source framework by Meta & Hugging Face** for creating standardized, isolated, and reusable environments for training and deploying AI agents. |
|
|
| Key features: |
| - **Gymnasium-style API** for standardized interaction |
| - **Containerized execution** via Docker |
| - **Central hub on Hugging Face** for sharing environments |
| - Used by teams at Meta to define environments once and run them consistently across training, post-training, and evaluation |
|
|
| Think of it as the **universal language for AI training environments**. |
|
|
| Resources: |
| - OpenEnv spec on GitHub |
| - Meta-PyTorch GitHub |
| - HuggingFace GitHub |
|
|
| --- |
|
|
| ## What You Build |
|
|
| Build RL environments on top of OpenEnv. Example project ideas: |
|
|
| | Category | Project | Description | |
| |----------|---------|-------------| |
| | Infrastructure | Autonomous Traffic Control | Multi-agent environment where AI systems manage a 4-way intersection with emergency vehicle prioritization | |
| | Support | Customer Service Agents | Complex environment where agents resolve multi-step queries using external tools and APIs | |
| | Workflow | Email Triage System | Agents learn to prioritize, categorize, and route emails using contextual understanding | |
| | Gaming | Multi-Agent Strategy | Agents compete in a strategic game environment with incomplete information and evolving rules | |
|
|
| **200+ more problem statements available from Meta.** |
|
|
| ### Round 1 Specifics |
| - Build a Mini-RL environment |
| - Must include defined tasks, graders, and reward logic |
| - Evaluation via programmatic checks & LLM scoring |
|
|
| ### Round 2 (Finale) Specifics |
| - 48-hour on-campus sprint in Bangalore |
| - Direct mentorship from Meta engineers on the ground |
| - Judging by Meta's global team |
|
|
| --- |
|
|
| ## Eligibility & Prerequisites |
|
|
| ### Who It's For |
| - Developers, ML engineers, or CS students **in India** |
| - Anyone curious about AI agents and how they learn |
| - **No prior RL experience required** β free prep courses at every stage |
|
|
| ### Prerequisites (Honest) |
| - Basic Python |
| - Some ML familiarity |
| - GitHub comfort |
| - *"If you've built anything in Python, you're ready."* |
|
|
| ### What You Get |
| - Free prep courses from Hugging Face & PyTorch |
| - Live workshops with senior AI engineers |
| - Discord community access from day one |
|
|
| ### Team Formation |
| - Round 1: Solo or team of up to 3 |
| - Finale: Option to team up with other selected builders on campus |
|
|
| --- |
|
|
| ## Training & Support |
|
|
| | Resource | Details | |
| |----------|---------| |
| | Prep Courses | Free from Hugging Face & PyTorch | |
| | Deep Dive Sessions | Meta-led sessions on OpenEnv before every round | |
| | Engineer Access | Direct access to Meta engineers during finale | |
| | Weekend Bootcamp | Intensive bootcamp for finalists (Apr 18-19, online) | |
| | Discord | Community access from registration | |
|
|
| --- |
|
|
| ## Finale Logistics (Scaler SST, Bangalore) |
|
|
| - **Venue:** Scaler School of Technology campus, Bangalore |
| - **Duration:** 48 hours (Sat 25 Apr - Sun 26 Apr) |
| - **Food:** All meals covered during the on-campus finale |
| - **Merch:** Exclusive limited-edition hackathon swag for all finalists |
| - **Expert Talks:** Live sessions from Meta, PyTorch, and Hugging Face engineers |
|
|
| --- |
|
|
| ## Sponsors & Partners |
|
|
| | Role | Organization | |
| |------|-------------| |
| | Primary Sponsor | **Meta** | |
| | Ecosystem Partner | **Hugging Face** | |
| | Framework Partner | **PyTorch** | |
| | Powered By | **Scaler School of Technology (SST)** | |
|
|
| --- |
|
|
| ## FAQs (Questions Listed on Page) |
|
|
| 1. Who can participate? |
| 2. Is this hackathon free to participate in? |
| 3. How many rounds are there? |
| 4. Where is the hackathon held? |
| 5. Will food and accommodation be provided for the final round? |
| 6. What is the team size? |
| 7. Do all team members need to register individually, and how do I form a team? |
| 8. Can team members be from different colleges or companies? |
| 9. Are there coding requirements? |
| 10. Do I need prior experience in Reinforcement Learning to participate? |
| 11. What learning support is available? |
| 12. Will there be any live sessions to help me prepare? |
| 13. Will there be mentorship? |
| 14. What do finalists get? |
| 15. What happens to what I build? |
| 16. What do the winners receive? |
| 17. How does the interview opportunity work? |
|
|
| *Note: FAQ answers are behind collapsible UI elements on the page. Key answers are addressed throughout this document based on other sections of the page.* |
|
|
| --- |
|
|
| ## Key Takeaways for Participation |
|
|
| 1. **Free to enter**, teams of 1-3, registration closes Apr 3 |
| 2. **Round 1 is remote** (Mar 25 - Apr 8) β build a mini RL environment |
| 3. **Finale is in-person in Bangalore** (Apr 25-26) β 48-hour hackathon |
| 4. **No RL experience needed** β free training provided at every stage |
| 5. **Winners get Meta & Hugging Face interview** β your hackathon performance IS your application |
| 6. **Code goes open source** on a Meta-backed project β real GitHub contributions |
| 7. **$30K prize pool** across top 15 positions |
|
|
| --- |
|
|
| ## Our Team |
|
|
| **Team Name:** AI Mafias |
| **Status:** Locked (no changes allowed) |
|
|
| | Member | Email | Role | |
| |--------|-------|------| |
| | Anshuman Atrey | anshumanatrey@gmail.com | Team Lead | |
| | Sahil Shah | ss9656484@gmail.com | Member (Accepted) | |
| | Vijay Kota | vijaykota2776@gmail.com | Member (Accepted) | |
|
|
| --- |
|
|
| ## Round 1 β Problem Statement (Detailed) |
|
|
| ### The Task |
| Build a **complete, real-world OpenEnv environment** that an AI agent can learn from through the standard `step()` / `reset()` / `state()` API. |
|
|
| ### Key Requirements at a Glance |
|
|
| | Requirement | Details | |
| |-------------|---------| |
| | Real-world task | Must simulate something humans actually do (NOT games/toys). E.g.: email triage, code review, data cleaning, scheduling, customer support, content moderation | |
| | OpenEnv spec | Typed Pydantic models, `step()`/`reset()`/`state()`, `openenv.yaml`, passes `openenv validate` | |
| | 3+ Tasks with graders | Each task has a programmatic grader scoring 0.0β1.0, difficulty range: easy β medium β hard | |
| | Reward function | Provides signal over full trajectory, rewards partial progress, penalizes bad behavior | |
| | Baseline inference script | Uses OpenAI API client, reads `OPENAI_API_KEY` from env vars, produces reproducible scores on all 3 tasks | |
| | HF Space deployment | Containerized, tagged with `openenv` | |
| | Dockerfile | Must `docker build` + `docker run` cleanly | |
| | README | Environment description, action/observation spaces, task descriptions, setup instructions, baseline scores | |
|
|
| ### Additional Endpoints to Expose |
|
|
| | Endpoint | Purpose | |
| |----------|---------| |
| | `/baseline` | Trigger inference script, return baseline score for all 3 tasks | |
| | `/grader` | Return grader score after an episode is completed | |
| | `/tasks` | Return list of tasks and the action schema (fields required for an action in a step) | |
|
|
| ### Functional Requirements (Detailed) |
|
|
| **1. Real-world task simulation** |
| - Must simulate a task humans actually do |
| - NOT games, NOT toys |
| - Examples: email triage, code review, data cleaning, scheduling, customer support, content moderation |
|
|
| **2. OpenEnv spec compliance** |
| - Typed `Observation`, `Action`, and `Reward` Pydantic models |
| - `step(action)` β returns observation, reward, done, info |
| - `reset()` β returns initial observation |
| - `state()` β returns current state |
| - `openenv.yaml` with metadata |
| - Must pass `openenv validate` |
|
|
| **3. Minimum 3 tasks with agent graders** |
| - Each task = concrete objective an agent must accomplish |
| - Programmatic grader scores performance 0.0β1.0 |
| - Difficulty range: easy β medium β hard |
| - Graders must have clear, deterministic success/failure criteria |
|
|
| **4. Meaningful reward function** |
| - Signal over the full trajectory (NOT just binary end-of-episode) |
| - Rewards partial progress toward task completion |
| - Penalizes clearly undesirable behavior (e.g. infinite loops, destructive actions) |
|
|
| **5. Baseline inference script** |
| - Uses the OpenAI API client to run a model against the environment |
| - Reads API credentials from environment variables (`OPENAI_API_KEY`) |
| - Produces reproducible baseline score on all 3 tasks |
|
|
| ### Non-Functional Requirements |
|
|
| - **Deploys to HF Space** β tagged with `openenv` |
| - **Containerized** β working Dockerfile, clean `docker build` + `docker run` |
| - **Documented** β README with: env description & motivation, action/observation space definitions, task descriptions with difficulty, setup instructions, baseline scores |
|
|
| --- |
|
|
| ## Scoring Criteria |
|
|
| | Parameter | Weight | Description | |
| |-----------|--------|-------------| |
| | **Real-world utility** | **30%** | Does the environment model a genuine task? Would someone actually use this to train/evaluate agents? | |
| | **Task & grader quality** | **25%** | Well-defined tasks? Accurate graders? Meaningful difficulty progression? | |
| | **Environment design** | **20%** | Clean state, sensible action/observation spaces, good reward shaping, proper episode boundaries | |
| | **Code quality & spec compliance** | **15%** | Follows OpenEnv spec, clean structure, typed models, documented, tested, Dockerfile works | |
| | **Creativity & novelty** | **10%** | Novel domain, interesting mechanics, clever reward design, original approach | |
|
|
| ### Scoring Rubric |
|
|
| **Real-world utility (30%)** |
| - 0β5: Toy/artificial problem with no practical application |
| - 6β15: Valid domain but shallow modeling of the real task |
| - 16β25: Good domain modeling, would be useful for agent evaluation |
| - 26β30: Excellent β fills a real gap, immediate value for the RL/agent community |
|
|
| **Task & grader quality (25%)** |
| - 3+ tasks with difficulty range? |
| - Graders produce scores between 0.0β1.0? |
| - Graders deterministic and reproducible? |
| - Hard task genuinely challenges frontier models? |
|
|
| **Environment design (20%)** |
| - `reset()` produces clean state? |
| - Action/observation types well-designed and documented? |
| - Reward function provides useful varying signal (not just sparse)? |
| - Episode boundaries sensible? |
|
|
| **Code quality & spec compliance (15%)** |
| - `openenv validate` passes? |
| - `docker build && docker run` works? |
| - HF Space deploys and responds? |
| - Baseline script runs and reproduces scores? |
|
|
| **Creativity & novelty (10%)** |
| - Domain we haven't seen in OpenEnv before? |
| - Reward design has interesting properties? |
| - Clever mechanics that make the environment engaging? |
|
|
| --- |
|
|
| ## Judging Process |
|
|
| ### Phase 1: Automated Validation (Pass/Fail Gate) |
| - HF Space deploys |
| - OpenEnv spec compliance |
| - Dockerfile builds |
| - Baseline reproduces |
| - 3+ tasks with graders |
|
|
| ### Phase 2: Agentic Evaluation (Scored) |
| - Baseline agent re-run |
| - Standard Open LLM agent (e.g. Nemotron 3 Super) run against all environments |
| - Score variance check |
|
|
| ### Phase 3: Human Review |
| - Top submissions reviewed by **Meta and Hugging Face engineers** |
| - Evaluated for real-world utility, creativity, and exploit checks |
|
|
| ### Disqualification Criteria |
| - Environment does not deploy or respond |
| - Plagiarized or trivially modified existing environments |
| - Graders that always return the same score |
| - No baseline inference script |
|
|
| --- |
|
|
| ## Pre-Submission Checklist (ALL must pass or disqualified) |
|
|
| - [ ] HF Space deploys β automated ping to Space URL returns 200 and responds to `reset()` |
| - [ ] OpenEnv spec compliance β validate `openenv.yaml`, typed models, `step()`/`reset()`/`state()` endpoints |
| - [ ] Dockerfile builds β automated `docker build` on submitted repo |
| - [ ] Baseline reproduces β inference script completes without error and produces scores |
| - [ ] 3+ tasks with graders β each grader returns scores in 0.0β1.0 range |
| - [ ] `/baseline` endpoint works |
| - [ ] `/grader` endpoint works |
| - [ ] `/tasks` endpoint works |
| - [ ] Run pre-submission validation script before submitting |
|
|
| --- |
|
|
| ## Scale & Competition |
|
|
| - **20,000 teams registered β only 3,000 advance** (top 15%) |
| - **Deadline: 8 April 2026, 11:59 PM IST** |
| - Round 1 is NOW LIVE |
|
|
| --- |
|
|
| ## CRITICAL: Additional Instructions (from Dashboard β April 2026) |
|
|
| ### Environment Variables (MUST define) |
|
|
| | Variable | Purpose | |
| |----------|---------| |
| | `API_BASE_URL` | The API endpoint for the LLM | |
| | `MODEL_NAME` | The model identifier to use for inference | |
| | `HF_TOKEN` | Your Hugging Face / API key | |
|
|
| **Note:** This replaces the earlier mention of `OPENAI_API_KEY`. The env must read these three variables. |
|
|
| ### Inference Script Rules |
| - **MUST be named `inference.py`** β placed in root directory of the project |
| - **MUST use OpenAI Client** for all LLM calls (using above variables) |
| - Supports screenshot/image observations via `image_url` in messages |
|
|
| ### Infrastructure Restrictions |
| - **Runtime:** Inference script must finish in **< 20 minutes** |
| - **Hardware limit:** Must run on **vcpu=2, memory=8GB** |
| - This is tiny β your environment MUST be lightweight, no heavy models or large datasets |
|
|
| ### Pre-Validation |
| - Run the official pre-submission validation script before submitting |
| - Script checks: HF Space is live, Docker builds, `openenv validate` passes |
|
|
| --- |
|
|
| ## Reference Projects (Top SF Hackathon Submissions) |
|
|
| These are the **winning projects from the San Francisco edition** β study their structure: |
|
|
| | Project | GitHub Path | Type | |
| |---------|------------|------| |
| | Calendar Environment | `meta-pytorch/OpenEnv/tree/main/envs/calendar_env` | Scheduling/calendar management | |
| | Reasoning Gym | `meta-pytorch/OpenEnv/tree/main/envs/reasoning_gym_env` | Reasoning tasks | |
| | TB2 (TBench2) | `meta-pytorch/OpenEnv/tree/main/envs/tbench2_env` | Tool-bench environment | |
| | CARLA | `meta-pytorch/OpenEnv/tree/main/envs/carla_env` | Autonomous driving sim | |
| | REPL | `meta-pytorch/OpenEnv/tree/main/envs/repl_env` | Code execution environment | |
|
|
| **Note:** "You do not need to replicate these. Use them to understand how environments are structured." |
|
|
| ### Sample Inference Script Pattern |
| ```python |
| # Key pattern from official sample: |
| user_prompt = build_user_prompt(step, observation, history) |
| user_content = [{"type": "text", "text": user_prompt}] |
| |
| # Supports screenshot/image observations |
| screenshot_uri = extract_screenshot_uri(observation) |
| if screenshot_uri: |
| user_content.append({ |
| "type": "image_url", |
| "image_url": {"url": screenshot_uri}, |
| }) |
| |
| messages = [ |
| {"role": "system", "content": [{"type": "text", "text": SYSTEM_PROMPT}]}, |
| {"role": "user", "content": user_content}, |
| ] |
| |
| completion = client.chat.completions.create( |
| model=MODEL_NAME, |
| messages=messages, |
| temperature=TEMPERATURE, |
| max_tokens=MAX_TOKENS, |
| stream=False, |
| ) |
| response_text = completion.choices[0].message.content or "" |
| action_str = parse_model_action(response_text) |
| result = env.step(Action(action_str=action_str)) |
| ``` |
|
|