Static academic project page for:
AXIS: A Growable Community-Driven Data Engine for Scalable Robot Manipulation
The structure follows the requested sections:
- Abstract
- Scalable Robot Data Collection
- The AXIS Franka Dataset
- Experiments
- BibTeX
The starter style is inspired by VideoMimic's cream-paper academic layout: large serif title, monospace section tags, fixed table of contents on wide screens, rounded media blocks, and horizontal video galleries. The content structure borrows the "living dataset" / dataset snapshot emphasis from EgoVerse.
From this folder:
python3 -m http.server 8000Then open:
http://localhost:8000
No build step is required. This should work directly on GitHub Pages.
The homepage reads data/realtime-stats.json and displays:
- verified trajectory count;
- distinct tasks represented by those trajectories;
- summed trajectory duration from
simulation_time_seconds; - observed hourly growth for trajectories and duration;
- the latest complete UTC day's task growth.
.github/workflows/realtime-stats.yml has redundant scheduler opportunities at
minutes 17, 37, and 57 (and can also be run manually). A freshness gate skips
the backup slots when the latest snapshot is less than 50 minutes old, so the
database is still queried roughly once per hour while delayed GitHub cron events
have another chance to refresh the page. Successful runs use a read-only
PostgreSQL transaction, write only the sanitized aggregate JSON to main
through the GitHub Contents API, and explicitly request a GitHub Pages rebuild.
The production path runs entirely on GitHub-hosted infrastructure. It does not use a developer laptop, a local SSH alias, a VPN session, or a self-hosted process.
This repository intentionally keeps its existing branch-based Pages setup.
Uploading the entire video-heavy site as a Pages artifact every hour would be
unnecessarily expensive. A GITHUB_TOKEN commit does not trigger a Pages build
on its own, so the explicit Pages build request in the workflow is required.
Between snapshots, the browser distributes the latest measured trajectory and duration increases across seeded pseudo-random event times for exactly one hour. Independent event times create visible bursts and quiet gaps while sorting keeps playback monotonic. Those counters start at the previous totals, finish at the latest totals, and never extrapolate past them. Tasks use the latest measured total directly because the task catalog updates daily. The real-time statistics heading sits above the metric cards; trajectories span the first row, while tasks and trajectory duration share the second row.
Changed digits use upward rolling reels with a short low-to-high stagger, inspired by live mileage counters. Visitors who prefer reduced motion receive the same real-time values without the reel animation. Trajectory and duration growth comes exclusively from the sanitized database delta; no artificial catch-up amount is added. The one bootstrap-day task estimate is marked explicitly and is replaced by snapshot-based daily differences from the next UTC date onward.
The initial task badge uses the latest complete UTC day's estimated increase,
Est. +9 / day (1,807 to 1,816 Tasks). It remains fixed for the whole current
UTC day. At the next UTC boundary, the collector publishes the completed day's
non-negative difference and starts a new baseline, so an unfinished day never
briefly appears as 0 / day. If the prior snapshot is more than six hours old
at the UTC date boundary, the daily badge is hidden for that day and the
collector starts a fresh baseline so it can recover automatically the next day.
Hourly Actions refreshes replace the trajectory and duration comparison with
the next pair of database snapshots. Public totals are monotonic: metric arrows
show upward growth or a steady value, and database corrections never decrease a
published total.
Add the approved reference-repository connection URL as the repository Actions Secret
AXIS_STATS_DATABASE_URL. The collector accepts the reference repository's
postgresql+psycopg://... form and requires sslmode=verify-full. The workflow
downloads the official AWS RDS global CA bundle, verifies its pinned SHA-256,
passes it to PostgreSQL for certificate and hostname validation, and always
executes the aggregate query inside a read-only transaction.
After configuring the Secret, run Actions → Refresh real-time statistics → Run workflow once. The checked-in database baseline lets this first refresh produce the initial growth rates.
.github/workflows/checks.yml downloads only this feature's small test surface
at the event commit and runs the Python and JavaScript tests on a GitHub-hosted
runner. It does not clone the video-heavy repository, use database Secrets, or
depend on a developer machine.
index.html Main page
style.css Website styling
script.js TOC highlight + BibTeX copy button
realtime-stats.js Hourly snapshot display + live estimation
data/realtime-stats.json Public sanitized snapshot
scripts/ Read-only collector + GitHub Pages publisher
.github/workflows/ Hourly statistics automation
.nojekyll Makes GitHub Pages serve static files directly
assets/paper/ PDF copy
assets/placeholders/ SVG placeholders used by the page
assets/media/ Drop-in MP4 videos
assets/images/ Drop-in final figures/logos/screenshots
Suggested media names already referenced as data-replace-with hints in index.html:
assets/media/hero-teaser.mp4assets/media/collection-demo.mp4assets/media/augmentation-demo.mp4assets/media/realworld-rollout.mp4
To activate a video, replace the corresponding placeholder <video ...></video> with:
<video class="hero-video" poster="assets/placeholders/teaser.svg" muted autoplay loop playsinline preload="metadata">
<source src="assets/media/hero-teaser.mp4" type="video/mp4" />
</video>Suggested figure replacements:
assets/placeholders/teaser.svg→ final teaser/system overviewassets/placeholders/collection-pipeline.svg→ collection pipeline figureassets/placeholders/dataset-overview.svg→ dataset overview figureassets/placeholders/augmentation-grid.svg→ augmentation diversity figureassets/placeholders/experiments.svg→ results chartassets/placeholders/rollout-gallery.svg→ real-world rollout figure
You can either overwrite the placeholder files with final assets using the same paths, or update the paths in index.html.
- Replace author list and affiliation text in the hero section.
- Update
[dataset],[code], and[platform]links. - Replace placeholder SVGs/videos.
- Update BibTeX.
- Confirm whether the paper PDF should be public before deploying.
- Optional: add
CNAMEfor a custom domain.