Skip to content

Commit 4cde40d

Browse files
committed
Build static DORAEMON challenge site
1 parent 244ffe5 commit 4cde40d

66 files changed

Lines changed: 7008 additions & 2 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.DS_Store
2+
.venv/
3+
node_modules/
4+
.next/
5+
.source/
6+
sites/docs/out/
7+
*.tsbuildinfo
8+
build/
9+
site/
10+
__pycache__/
11+
*.pyc
12+
context/
13+
prototypes/

Makefile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.PHONY: build docs docs-serve validate
2+
3+
NODE_BIN_DIRS := $(wildcard /opt/homebrew/opt/node@22/bin /opt/homebrew/opt/node/bin /usr/local/opt/node@22/bin /usr/local/opt/node/bin)
4+
ifneq ($(NODE_BIN_DIRS),)
5+
export PATH := $(firstword $(NODE_BIN_DIRS)):$(PATH)
6+
endif
7+
8+
build: docs
9+
10+
docs: validate check-node
11+
yarn --cwd sites/docs build
12+
13+
docs-serve: check-node
14+
yarn --cwd sites/docs dev
15+
16+
check-node:
17+
@command -v node >/dev/null || { echo "Node.js is required for the docs site. Install it with: brew install node"; exit 127; }
18+
@command -v yarn >/dev/null || { echo "Yarn is required for the docs site. Install it with: brew install yarn"; exit 127; }
19+
20+
validate:
21+
uv run python scripts/validate_metadata.py

README.md

Lines changed: 146 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,146 @@
1-
# doraemon_site
2-
Website for DORAEMON data challenge
1+
# DORAEMON Site
2+
3+
This repo contains the website for the DORAEMON open dataset challenge.
4+
5+
Most contributors should only need to edit Markdown-like text files. You do not need to know React, Next.js, or Fumadocs to add information.
6+
7+
## Where To Edit
8+
9+
| I want to edit | Go here |
10+
| --- | --- |
11+
| General documentation | `sites/docs/content/docs/` |
12+
| Physics notes | `sites/docs/content/docs/physics/` |
13+
| Challenge rules or metrics | `sites/docs/content/docs/challenge-reference/` |
14+
| Challenge pages | `sites/docs/content/challenges/` |
15+
| Dataset pages | `sites/docs/app/data-hub/` |
16+
| Challenge metadata | `challenges/<challenge-id>/challenge.yml` |
17+
| Dataset metadata | `datasets/<dataset-id>/dataset.yml` |
18+
19+
## Adding A Documentation Page
20+
21+
Add a `.mdx` file under `sites/docs/content/docs/`.
22+
23+
For example:
24+
25+
```text
26+
sites/docs/content/docs/getting-started/my-page.mdx
27+
```
28+
29+
Start the file with:
30+
31+
```mdx
32+
---
33+
title: My Page
34+
description: A short sentence about the page.
35+
---
36+
37+
Write the page here.
38+
```
39+
40+
To add a nested documentation section, make a folder with:
41+
42+
```text
43+
index.mdx
44+
meta.json
45+
```
46+
47+
The `meta.json` file controls the order of pages in the left sidebar.
48+
49+
## Adding A Challenge Page
50+
51+
Add a file under `sites/docs/content/challenges/`.
52+
53+
Copy an existing challenge file and change the text and metadata. The optional `order` field controls the order of cards on `/challenges`.
54+
55+
Challenge pages should link to shared explanations in Documentation instead of copying the same background text into every challenge.
56+
57+
## Adding Dataset Or Challenge Metadata
58+
59+
For durable records, add or edit:
60+
61+
```text
62+
challenges/<challenge-id>/challenge.yml
63+
datasets/<dataset-id>/dataset.yml
64+
registry/challenges.yml
65+
registry/datasets.yml
66+
```
67+
68+
The registry files are simple lists. Add the new ID there so validation tools can find it.
69+
70+
## Local Checks
71+
72+
First, make sure the required command-line tools are installed:
73+
74+
```sh
75+
node --version
76+
yarn --version
77+
uv --version
78+
```
79+
80+
If `node` is missing, install Node.js LTS from:
81+
82+
```text
83+
https://nodejs.org/
84+
```
85+
86+
After Node.js is installed, install Yarn with:
87+
88+
```sh
89+
npm install --global yarn
90+
```
91+
92+
If `uv` is missing, install it with one of these:
93+
94+
macOS or Linux:
95+
96+
```sh
97+
curl -LsSf https://astral.sh/uv/install.sh | sh
98+
```
99+
100+
Windows PowerShell:
101+
102+
```powershell
103+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
104+
```
105+
106+
If you already use a package manager, these are also fine:
107+
108+
```sh
109+
# macOS
110+
brew install node
111+
brew install yarn
112+
brew install uv
113+
114+
# Windows
115+
winget install OpenJS.NodeJS.LTS
116+
winget install Yarn.Yarn
117+
winget install astral-sh.uv
118+
```
119+
120+
Then install the website packages:
121+
122+
```sh
123+
yarn --cwd sites/docs install
124+
```
125+
126+
Run this before opening a pull request:
127+
128+
```sh
129+
make validate
130+
make docs
131+
```
132+
133+
Run this to preview the site locally:
134+
135+
```sh
136+
make docs-serve
137+
```
138+
139+
Then open the local URL printed by the command.
140+
141+
## Notes
142+
143+
- Documentation pages support normal Markdown.
144+
- Math works with `$...$` and `$$...$$`.
145+
- Images used by docs should usually live in `sites/docs/public/docs/`.
146+
- The built website is static for now.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Foundation Model Panoptic Segmentation
2+
3+
Draft challenge placeholder for foundation-model reconstruction tasks in neutrino detector event displays.
4+
5+
This folder is intentionally plain. Future challenge pages, leaderboards, and benchmark runners should consume `challenge.yml` instead of treating a website implementation as the source of truth.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
id: fm-panoptic-segmentation
2+
title: Foundation Model Panoptic Segmentation
3+
status: draft
4+
summary: Segment detector hits by semantic particle class, particle instance, and interaction grouping.
5+
category: foundation-models
6+
technical_area: computer-vision
7+
physics_area: neutrino event reconstruction
8+
datasets:
9+
- lartpc-fm-v1
10+
metrics:
11+
- adjusted-rand-index
12+
links:
13+
docs: ../../sites/docs/docs/challenges.md
14+
baseline: null
15+
leaderboard: null
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Metrics
2+
3+
The initial metric placeholder is Adjusted Rand Index for clustering agreement between submitted predictions and truth labels.
4+
5+
Metric definitions should eventually live in the challenge docs and be linked from each challenge page.

datasets/lartpc-fm-v1/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# LArTPC Foundation Model Dataset v1
2+
3+
Draft dataset placeholder for LArTPC foundation-model research.
4+
5+
Dataset storage, access instructions, schema details, and example notebooks can be added here without coupling future dataset pages to a specific web framework.

datasets/lartpc-fm-v1/dataset.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
id: lartpc-fm-v1
2+
title: LArTPC Foundation Model Dataset v1
3+
status: planned
4+
summary: Simulated LArTPC event-display dataset for foundation-model pretraining and downstream reconstruction benchmarks.
5+
modality: lartpc
6+
version: v1
7+
access:
8+
type: pending
9+
url: null
10+
schema_doc: schema.md
11+
example_paths: []

datasets/lartpc-fm-v1/schema.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Dataset Schema
2+
3+
Schema details are pending.
4+
5+
This page should eventually define file formats, coordinate conventions, labels, splits, metadata fields, and example loading code.

pyproject.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[project]
2+
name = "doraemon-site"
3+
version = "0.1.0"
4+
description = "Website, documentation, and benchmark metadata for the DORAEMON community."
5+
requires-python = ">=3.10"
6+
dependencies = [
7+
"jsonschema>=4.23,<5",
8+
"pyyaml>=6.0,<7",
9+
]
10+
11+
[tool.uv]
12+
package = false

0 commit comments

Comments
 (0)