vikash-nuvai
fix: add HF Spaces YAML frontmatter for Docker SDK
f61db78
metadata
title: Smart Tiffin Packer
emoji: ๐Ÿฑ
colorFrom: yellow
colorTo: green
sdk: docker
app_port: 7860
pinned: false

Smart Tiffin Packing Environment ๐Ÿฑ๐Ÿค–

Semantic-aware constrained packing under real-world constraints

An OpenEnv-compliant RL environment where an LLM agent controls a robotic arm to pack an Indian tiffin meal. The agent uses VLM-derived food classification to reason about container compatibility, volume constraints, temperature zones, and fragility โ€” then physically executes packing decisions.

๐ŸŽฏ What is this?

This environment simulates the real-world task of packing an Indian meal into tiffin containers. An AI agent must:

  1. Identify food items using a Vision-Language Model (VLM)
  2. Reason about which container each item should go into
  3. Execute packing commands via a robotic arm
  4. Satisfy multiple constraints simultaneously

Why Tiffin Packing?

Every day, millions of people in India pack tiffin boxes for lunch. It's a genuine spatial-reasoning task with real constraints:

  • Liquids (sambar, dal) must go in sealed containers
  • Fragile items (papad, chapati) shouldn't be crushed
  • Hot and cold foods should be separated
  • Volume limits mean you can't just stuff everything in one box

๐Ÿ—๏ธ Architecture

LLM Agent (via OpenAI API)
    โ”‚
    โ”œโ”€โ”€ observe โ†’ See scene description
    โ”œโ”€โ”€ identify โ†’ VLM classifies food item
    โ”œโ”€โ”€ pick โ†’ Robotic arm picks up food
    โ”œโ”€โ”€ place โ†’ Place item in container
    โ””โ”€โ”€ pour โ†’ Pour liquid into container
    โ”‚
    โ–ผ
OpenEnv Server (FastAPI)
    โ”‚
    โ”œโ”€โ”€ Simulation Engine (logic + PyBullet physics)
    โ”œโ”€โ”€ VLM Classifier (cached food_db.json)
    โ”œโ”€โ”€ Task Manager (easy/medium/hard)
    โ””โ”€โ”€ Deterministic Grader (0.0-1.0)

๐ŸŽฎ Tasks

Task Items Containers Constraints Difficulty
๐ŸŸข Easy rice, sambar (2) sealed, flat (2) Type matching Straightforward
๐ŸŸก Medium rice, sambar, chapati, pickle (4) sealed, flat, deep (3) Types + overflow + temperature Requires reasoning
๐Ÿ”ด Hard rice, sambar, curd, chapati, papad, curry (6) sealed, flat, deep, small_sealed (4) All constraints active Genuinely challenging

๐Ÿ“Š Scoring (0.0 โ€“ 1.0)

Component Weight Description
Validity 40% Food placed in type-compatible container?
Efficiency 30% Space utilization vs capacity used
Constraints 20% Temperature, fragility, flavor isolation
Neatness 10% All items packed? Nothing dropped?

๐Ÿš€ Quick Start

Run locally

pip install -r requirements.txt
uvicorn server.app:app --host 0.0.0.0 --port 7860

Run inference

export API_BASE_URL=https://api.openai.com/v1
export MODEL_NAME=gpt-4o
export HF_TOKEN=your-api-key
export ENV_URL=http://localhost:7860
python inference.py

Docker

docker build -t tiffin-packer .
docker run -p 7860:7860 tiffin-packer

๐Ÿ”ง Action Space

{
  "command": "identify | pick | place | pour | observe",
  "target_id": 1
}

๐Ÿ‘๏ธ Observation Space

{
  "scene_description": "Natural language scene state",
  "food_items": [{"id": 1, "name": "rice", "status": "on_table", ...}],
  "containers": [{"id": 1, "type": "sealed_round", "capacity_ml": 300, ...}],
  "held_item": null,
  "vlm_result": {"type": "solid", "fragility": 0.1, ...},
  "available_commands": ["observe", "identify", "pick"],
  "step_feedback": "Successfully picked up rice"
}

๐Ÿ“ Project Structure

tiffen-packer/
โ”œโ”€โ”€ openenv.yaml          # OpenEnv manifest
โ”œโ”€โ”€ inference.py           # LLM inference script (OpenAI Client)
โ”œโ”€โ”€ Dockerfile             # HF Spaces deployment
โ”œโ”€โ”€ tiffin_packer/         # Core package
โ”‚   โ”œโ”€โ”€ models.py          # Pydantic Action/Observation/State
โ”‚   โ”œโ”€โ”€ simulation/
โ”‚   โ”‚   โ”œโ”€โ”€ engine.py      # Logic simulation engine
โ”‚   โ”‚   โ””โ”€โ”€ pybullet_renderer.py  # Physics visualization
โ”‚   โ”œโ”€โ”€ vlm/
โ”‚   โ”‚   โ”œโ”€โ”€ classifier.py  # VLM food classifier
โ”‚   โ”‚   โ””โ”€โ”€ food_db.json   # 15 Indian food items
โ”‚   โ”œโ”€โ”€ tasks.py           # Easy/Medium/Hard task configs
โ”‚   โ””โ”€โ”€ grader.py          # Deterministic scoring
โ””โ”€โ”€ server/
    โ”œโ”€โ”€ tiffin_environment.py  # OpenEnv Environment
    โ””โ”€โ”€ app.py                 # FastAPI server

๐Ÿ† OpenEnv Compliance

  • โœ… Typed Pydantic models (Action, Observation, State)
  • โœ… step() / reset() / state() API
  • โœ… openenv.yaml manifest
  • โœ… 3 tasks with deterministic graders (0.0โ€“1.0)
  • โœ… Dense reward function with partial progress signals
  • โœ… Baseline inference script using OpenAI Client
  • โœ… Docker deployment for HF Spaces

๐Ÿ‘ฅ Team

CtrlAltWin โ€” Meta PyTorch OpenEnv Hackathon 2026

๐Ÿ“„ License

MIT