Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 10 additions & 20 deletions .github/workflows/build-paper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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'
Expand All @@ -39,7 +39,7 @@ on:
workflow_dispatch:

permissions:
contents: write
contents: read

jobs:
build:
Expand Down Expand Up @@ -74,30 +74,20 @@ 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
with:
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
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Binary file removed docs/static/pdfs/dashvmc.pdf
Binary file not shown.
23 changes: 10 additions & 13 deletions paper/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
Expand All @@ -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
15 changes: 9 additions & 6 deletions paper/SUBMISSION_TARGET.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
12 changes: 12 additions & 0 deletions paper/dashvmc-camera-ready.tex
Original file line number Diff line number Diff line change
@@ -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}
4 changes: 2 additions & 2 deletions paper/dashvmc-preprint.tex
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
% Public, authored technical-report version.
\documentclass{fairpreprint}

\newif\ifdashvmcsubmission
\dashvmcsubmissionfalse
\newif\ifdashvmcworkshop
\dashvmcworkshopfalse
\newcommand{\dashvmcbibliographystyle}{plainnat}

\input{main.tex}
17 changes: 0 additions & 17 deletions paper/dashvmc-submission.tex

This file was deleted.

50 changes: 32 additions & 18 deletions paper/main.tex
Original file line number Diff line number Diff line change
@@ -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}
Expand All @@ -17,16 +17,17 @@
\usepackage{graphicx}
\usepackage{placeins}
\usepackage{flafter}
\usepackage{needspace}

\ifdashvmcsubmission
\ifdashvmcworkshop
\definecolor{citeblue}{HTML}{4A90E2}
\hypersetup{
colorlinks=true,
citecolor=citeblue,
linkcolor=citeblue,
urlcolor=citeblue,
pdftitle={DashVMC: Real-Time Discrete World Model Control in Geometry Dash},
pdfauthor={}
pdfauthor={Florent Tariolle and Florian Yger}
}
\else
\hypersetup{
Expand Down Expand Up @@ -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]
Expand All @@ -83,7 +96,7 @@

\maketitle

\ifdashvmcsubmission
\ifdashvmcworkshop
\begin{abstract}
\dashvmcabstract
\end{abstract}
Expand All @@ -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;
Expand Down Expand Up @@ -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}
Expand All @@ -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}
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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}
Expand Down Expand Up @@ -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}
Expand Down
7 changes: 7 additions & 0 deletions paper/neurips_2026.sty
Original file line number Diff line number Diff line change
Expand Up @@ -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}{%
Expand Down
Loading