diff --git a/.github/workflows/build-paper.yml b/.github/workflows/build-paper.yml index b3a2bb38..baf2db6f 100644 --- a/.github/workflows/build-paper.yml +++ b/.github/workflows/build-paper.yml @@ -6,7 +6,7 @@ on: paths: - 'paper/main.tex' - 'paper/dashvmc-preprint.tex' - - 'paper/dashvmc-submission.tex' + - 'paper/dashvmc-camera-ready.tex' - 'paper/fairpreprint.cls' - 'paper/references.bib' - 'paper/neurips_2026.sty' @@ -23,7 +23,7 @@ on: paths: - 'paper/main.tex' - 'paper/dashvmc-preprint.tex' - - 'paper/dashvmc-submission.tex' + - 'paper/dashvmc-camera-ready.tex' - 'paper/fairpreprint.cls' - 'paper/references.bib' - 'paper/neurips_2026.sty' @@ -39,7 +39,7 @@ on: workflow_dispatch: permissions: - contents: write + contents: read jobs: build: @@ -74,14 +74,11 @@ jobs: root_file: dashvmc-preprint.tex latexmk_use_xelatex: true - - name: Compile anonymous submission + - name: Compile workshop camera-ready uses: xu-cheng/latex-action@v3 with: working_directory: paper - root_file: dashvmc-submission.tex - - - name: Copy paper PDF to docs - run: cp paper/dashvmc-preprint.pdf docs/static/pdfs/dashvmc.pdf + root_file: dashvmc-camera-ready.tex - name: Upload PDF artifact uses: actions/upload-artifact@v4 @@ -89,15 +86,8 @@ jobs: name: public-preprint path: paper/dashvmc-preprint.pdf - - name: Commit updated PDF - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - if git diff --quiet docs/static/pdfs/dashvmc.pdf; then - echo "No PDF changes" - exit 0 - fi - git add docs/static/pdfs/dashvmc.pdf - git commit -m "ci: rebuild paper PDF [skip ci]" - git push + - name: Upload camera-ready artifact + uses: actions/upload-artifact@v4 + with: + name: workshop-camera-ready + path: paper/dashvmc-camera-ready.pdf diff --git a/ROADMAP.md b/ROADMAP.md index 722e5b4d..232b4e4f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -56,7 +56,7 @@ The controlled V7 evaluator runs are complete for the first three official level 1. Add the generated-continuation figure. (Done for the paper build; inspect final PDF placement.) 2. Preserve the optimized deployment benchmark and its per-stage averages as the reported latency evidence. 3. Move any SLS/IRIS discussion behind the DashVMC system results and keep the claim scoped. -4. Compile the PDF and update `docs/static/pdfs/dashvmc.pdf`. +4. Compile the camera-ready PDF (`make camera-ready`) and update arXiv; the website links to arXiv rather than hosting a PDF. ## Do Not Spend Time On Before August diff --git a/docs/static/pdfs/dashvmc.pdf b/docs/static/pdfs/dashvmc.pdf deleted file mode 100644 index 58995dac..00000000 Binary files a/docs/static/pdfs/dashvmc.pdf and /dev/null differ diff --git a/paper/Makefile b/paper/Makefile index 33a4d9fc..7d38123f 100644 --- a/paper/Makefile +++ b/paper/Makefile @@ -3,18 +3,15 @@ PUBLIC_TEX = xelatex -interaction=nonstopmode -halt-on-error FIGURE_TEX = xelatex -interaction=nonstopmode -halt-on-error BIB = bibtex PREPRINT = dashvmc-preprint -SUBMISSION = dashvmc-submission +CAMERA_READY = dashvmc-camera-ready PY = python FIGURE_FONT = ../docs/assets/fonts/AlphaLyrae-Medium.ttf -all: preprint submission +all: preprint camera-ready preprint: $(PREPRINT).pdf -submission: $(SUBMISSION).pdf - -website: $(PREPRINT).pdf - $(PY) -c "import shutil; shutil.copyfile('$(PREPRINT).pdf', '../docs/static/pdfs/dashvmc.pdf')" +camera-ready: $(CAMERA_READY).pdf figures/pipeline.pdf: ../docs/pipeline.tex $(FIGURE_FONT) $(PY) -c "import os; os.makedirs('figures', exist_ok=True)" @@ -40,13 +37,13 @@ $(PREPRINT).pdf: $(PREPRINT).tex main.tex references.bib fairpreprint.cls figure $(PUBLIC_TEX) $(PREPRINT) $(PUBLIC_TEX) $(PREPRINT) -$(SUBMISSION).pdf: $(SUBMISSION).tex main.tex references.bib neurips_2026.sty figures/pipeline.pdf figures/continuation.pdf - $(TEX) $(SUBMISSION) - $(BIB) $(SUBMISSION) - $(TEX) $(SUBMISSION) - $(TEX) $(SUBMISSION) +$(CAMERA_READY).pdf: $(CAMERA_READY).tex main.tex references.bib neurips_2026.sty figures/pipeline.pdf figures/continuation.pdf + $(TEX) $(CAMERA_READY) + $(BIB) $(CAMERA_READY) + $(TEX) $(CAMERA_READY) + $(TEX) $(CAMERA_READY) clean: - $(PY) -c "import os; bases=['$(PREPRINT)','$(SUBMISSION)','main']; suffixes=['.aux','.bbl','.blg','.log','.out','.pdf','.fls','.fdb_latexmk','.synctex.gz']; files=[base + suffix for base in bases for suffix in suffixes] + ['figures/pipeline.pdf','figures/continuation.pdf']; [os.remove(f) for f in files if os.path.exists(f)]" + $(PY) -c "import os; bases=['$(PREPRINT)','$(CAMERA_READY)','main']; suffixes=['.aux','.bbl','.blg','.log','.out','.pdf','.fls','.fdb_latexmk','.synctex.gz']; files=[base + suffix for base in bases for suffix in suffixes] + ['figures/pipeline.pdf','figures/continuation.pdf']; [os.remove(f) for f in files if os.path.exists(f)]" -.PHONY: all preprint submission website clean +.PHONY: all preprint camera-ready clean diff --git a/paper/SUBMISSION_TARGET.md b/paper/SUBMISSION_TARGET.md index 39e5688b..33b9323e 100644 --- a/paper/SUBMISSION_TARGET.md +++ b/paper/SUBMISSION_TARGET.md @@ -2,11 +2,14 @@ - Venue: PTA — From Pretrained Representations to Acting Agents - Event: NeurIPS 2026 Workshop -- Track: Full-paper submission -- Format: NeurIPS 2026, double-blind -- Limit: Up to 9 pages +- Track: Full paper +- Format: NeurIPS 2026 workshop template, `[dblblindworkshop, final]` +- Limit: 9 pages of main text, excluding references; main text, references, + and appendices in a single PDF; no NeurIPS paper checklist - Submission deadline: August 29, 2026 (AoE) -- Status: Primary target +- Camera-ready deadline: November 25, 2026, 23:59 (AoE), via OpenReview +- Status: Accepted -The anonymous submission is built from `dashvmc-submission.tex`. The public -preprint remains separate and must not replace the double-blind workshop PDF. +The camera-ready paper is built from `dashvmc-camera-ready.tex` (`make +camera-ready`). The public preprint remains a separate build from +`dashvmc-preprint.tex`. diff --git a/paper/dashvmc-camera-ready.tex b/paper/dashvmc-camera-ready.tex new file mode 100644 index 00000000..fccf3f16 --- /dev/null +++ b/paper/dashvmc-camera-ready.tex @@ -0,0 +1,12 @@ +% Camera-ready full paper for PTA @ NeurIPS 2026. +\documentclass{article} + +\newif\ifdashvmcworkshop +\dashvmcworkshoptrue + +\PassOptionsToPackage{numbers,compress}{natbib} +\usepackage[dblblindworkshop, final]{neurips_2026} +\workshoptitle{PTA: From Pretrained Representations to Acting Agents} +\newcommand{\dashvmcbibliographystyle}{unsrtnat} + +\input{main.tex} diff --git a/paper/dashvmc-preprint.tex b/paper/dashvmc-preprint.tex index a93f23dc..d75bf103 100644 --- a/paper/dashvmc-preprint.tex +++ b/paper/dashvmc-preprint.tex @@ -1,8 +1,8 @@ % Public, authored technical-report version. \documentclass{fairpreprint} -\newif\ifdashvmcsubmission -\dashvmcsubmissionfalse +\newif\ifdashvmcworkshop +\dashvmcworkshopfalse \newcommand{\dashvmcbibliographystyle}{plainnat} \input{main.tex} diff --git a/paper/dashvmc-submission.tex b/paper/dashvmc-submission.tex deleted file mode 100644 index 519f6e5e..00000000 --- a/paper/dashvmc-submission.tex +++ /dev/null @@ -1,17 +0,0 @@ -% Anonymous full-paper submission to PTA @ NeurIPS 2026. -% Keep this PDF off the public website. -\documentclass{article} - -\newif\ifdashvmcsubmission -\dashvmcsubmissiontrue - -\PassOptionsToPackage{numbers,compress}{natbib} -\usepackage[dblblindworkshop]{neurips_2026} -\workshoptitle{PTA: From Pretrained Representations to Acting Agents} -\makeatletter -\@anonymousfalse -\renewcommand{\@noticestring}{Submitted to the PTA Workshop at NeurIPS 2026. Do not distribute.} -\makeatother -\newcommand{\dashvmcbibliographystyle}{unsrtnat} - -\input{main.tex} diff --git a/paper/main.tex b/paper/main.tex index 33d63121..efdaa7ea 100644 --- a/paper/main.tex +++ b/paper/main.tex @@ -1,6 +1,6 @@ % Shared manuscript semantics. The document class and publication-specific -% presentation are selected by dashvmc-preprint.tex or dashvmc-submission.tex. -\ifdashvmcsubmission +% presentation are selected by dashvmc-preprint.tex or dashvmc-camera-ready.tex. +\ifdashvmcworkshop \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{courier} @@ -17,8 +17,9 @@ \usepackage{graphicx} \usepackage{placeins} \usepackage{flafter} +\usepackage{needspace} -\ifdashvmcsubmission +\ifdashvmcworkshop \definecolor{citeblue}{HTML}{4A90E2} \hypersetup{ colorlinks=true, @@ -26,7 +27,7 @@ linkcolor=citeblue, urlcolor=citeblue, pdftitle={DashVMC: Real-Time Discrete World Model Control in Geometry Dash}, - pdfauthor={} + pdfauthor={Florent Tariolle and Florian Yger} } \else \hypersetup{ @@ -56,9 +57,21 @@ Action-conditioned continuations and rollout diagnostics show that the model remains useful for control despite imperfect long-horizon fidelity.% } -\ifdashvmcsubmission +\newcommand{\dashvmcacknowledgments}{% + We thank Cl\'ement Chatelain and Robin Condat for their guidance during the Representation Learning course at INSA Rouen Normandy, in which this project began, and CRIANN for providing the computing resources used for training. + We thank Ma{\"e}l Planchot for contributing gameplay data. + Geometry Dash is developed by RobTop Games.% +} + +\ifdashvmcworkshop \title{DashVMC: Real-Time Discrete World Model Control\\in Geometry Dash} - \author{Anonymous Author(s)} + \author{% + Florent Tariolle\thanks{Corresponding author: \href{mailto:florent.tariolle@insa-rouen.fr}{\texttt{florent.tariolle@insa-rouen.fr}}.} \\ + INSA Rouen Normandy + \And + Florian Yger \\ + INSA Rouen Normandy, LITIS + } \else \title{% DashVMC\\[0.1em] @@ -83,7 +96,7 @@ \maketitle -\ifdashvmcsubmission +\ifdashvmcworkshop \begin{abstract} \dashvmcabstract \end{abstract} @@ -107,6 +120,7 @@ \section{Introduction} DashVMC follows the perception--dynamics--control organization of World Models~\citep{ha2018world}: it compresses each frame into a discrete grid, learns action-conditioned grid dynamics, initializes a lightweight action model with BC, and refines it with PPO~\citep{schulman2017ppo} in the frozen model. +\needspace{5\baselineskip} Our contributions are: \begin{enumerate} \item a compact discrete, action-conditioned world model learned from approximately two hours of offline gameplay, whose rollouts support policy refinement without further live-game interaction; @@ -138,13 +152,13 @@ \section{DashVMC} The visual encoder, dynamics model, and action model are trained in sequence and then frozen for deployment. Figure~\ref{fig:pipeline} shows how the same learned state supports both imagined practice and live reaction. -\ifdashvmcsubmission +\ifdashvmcworkshop \begin{figure}[!htbp] \else \begin{figure}[!htbp] \fi \centering - \ifdashvmcsubmission + \ifdashvmcworkshop \includegraphics[width=\textwidth]{figures/pipeline.pdf} \else \includegraphics[width=0.82\textwidth]{figures/pipeline.pdf} @@ -162,7 +176,7 @@ \subsection{Visual tokenization} The tokenizer is trained on adjacent frames with reconstruction, temporal-slowness, and latent-uniformity objectives~\citep{xia2025grwm}. Once selected, its encoder is frozen; its decoder is used to visualize dreams but is not required by the action model. -\ifdashvmcsubmission\else +\ifdashvmcworkshop\else \FloatBarrier \fi \subsection{Action-conditioned dynamics} @@ -406,9 +420,7 @@ \subsection{Action sensitivity and autoregressive fidelity} Beyond its 45-step training horizon, the model feeds predicted grids and new actions back into context. Interactive rollouts reproduce scrolling terrain, camera and height changes, collisions, and avatar transformations; long continuations may remain coherent or eventually repeat, empty, or invent impossible geometry. -\ifdashvmcsubmission\else - Video demonstrations of interactive level continuations are available on the \href{https://tariolle.github.io/dash-vmc/\#dreams}{project page}. -\fi +Video demonstrations of interactive level continuations are available on the \href{https://tariolle.github.io/dash-vmc/\#dreams}{project page}. \begin{table}[H] \centering @@ -443,7 +455,7 @@ \subsection{Action sensitivity and autoregressive fidelity} \begin{figure}[H] \centering - \ifdashvmcsubmission + \ifdashvmcworkshop \includegraphics[width=\textwidth]{figures/continuation.pdf} \else \includegraphics[width=0.70\textwidth]{figures/continuation.pdf} @@ -510,13 +522,15 @@ \section{Conclusion} The deployed pipeline meets the game's 60-Hz timing budget, while the spatial-only ablation shows that the learned dynamics can enable policy improvement without remaining in the live control path. Under data scarcity, the world model thus acts as an interface between past experience and future decisions without prescribing how it must be used: DashVMC uses that interface for imagined policy optimization, while planning-based agents could instead query it at evaluation time. -\ifdashvmcsubmission\else +\ifdashvmcworkshop + \begin{ack} + \dashvmcacknowledgments + \end{ack} +\else \raggedbottom \clearpage \section*{Acknowledgments} - We thank Cl\'ement Chatelain and Robin Condat for their guidance during the Representation Learning course at INSA Rouen Normandy, in which this project began, and CRIANN for providing the computing resources used for training. - We thank Ma{\"e}l Planchot for contributing gameplay data. - Geometry Dash is developed by RobTop Games. + \dashvmcacknowledgments \fi \bibliographystyle{\dashvmcbibliographystyle} diff --git a/paper/neurips_2026.sty b/paper/neurips_2026.sty index 30f26a15..c2ac0132 100644 --- a/paper/neurips_2026.sty +++ b/paper/neurips_2026.sty @@ -374,6 +374,13 @@ \vskip 1ex% } +% For the paper checklist +\newcommand{\answerYes}[1][]{\textcolor{blue}{[Yes]#1}} +\newcommand{\answerNo}[1][]{\textcolor{orange}{[No]#1}} +\newcommand{\answerNA}[1][]{\textcolor{gray}{[N/A]#1}} +\newcommand{\answerTODO}[1][]{\textcolor{red}{\bf [TODO]}} +\newcommand{\justificationTODO}[1][]{\textcolor{red}{\bf [TODO]}} + % handle tweaks for camera-ready copy vs. submission copy \if@preprint \newcommand{\@noticestring}{%