Skip to content

Migrate from diffdrr to nanodrr#133

Draft
eigenvivek wants to merge 32 commits intomainfrom
dev
Draft

Migrate from diffdrr to nanodrr#133
eigenvivek wants to merge 32 commits intomainfrom
dev

Conversation

@eigenvivek
Copy link
Copy Markdown
Owner

@eigenvivek eigenvivek commented Feb 17, 2026

Change the rendering backend to nanodrr, our performance-oriented reimplementation of DiffDRR.

Closes #31
Closes #94
Closes #117
Closes #118

* Add nanodrr package

* Add jaxtyping dependency

* Update pose sampler

* Replace DiffDRR components in trainer

* Monkey-patch loss function

* Update load subject function

* Fix devices and dtypes

* Start deprecating MVC

* Remove RigidTransforms in majority of functions
* Port loss functions and SE(3) utilities

* Remove unused args

* Fix single-subject loading
* Switch to local roma fork

* Get compile working on the training step

* Remove unused args

* Update pre-commit hooks

* Fix imports
* Update roma

* Fuse the optimizer

* Make XrayTransforms compilable

* Skip cudagraphs (for now)

* Make augmentations compilable

* Set up bf16 autocasting

* Update roma dependency
* Simplify load function

* Wrap metrics in a NamedTuple

* Mask loss from poor samples
* Update packages

* Increase num_samples per image

* Remove old args

* Fix bf16 dtypes

* Update

* Optimize queue loader

* Update packages

* Add optional flags for compile/bf16

* Simplify DRR plotting

* Fix module name

* Fix flags

* Fix logged images
* Fix nanodrr imports

* Refactor initialization to a submodule

* Move network, scheduler, and loss to a submodule

* Make submodule for data ops

* Make submodule for data ops

* Go full tensor

* Remove unused augmentation

* Fix loss mean
* Update uv.lock

* Add badges to docs
Upgrade rendering backend to nanodrr
@eigenvivek eigenvivek changed the title Dev Migrate from diffdrr to nanodrr Feb 21, 2026
* Load affine from numpy

* Simplify imports
* Construct subject iterator entirely in submodule

* Reorder trainer functions from first to last

* Simplify rendering function

* Add to-center coordinate frame

* Fix isocenter type

* Add some type annotations

* Recenter poses at origin before dgeo

* Rename submodule datum -> data

* Update packages

* Revert changes to xframe

* Remove ipynb checkpoints

* Simplify autocast

* Make sure to change dtype of subject

* Add setuptools for compile
* Make a class for intrinsics

* Update intrinsics resampling

* Add typehints

* Implement a draft of new Register class

* Add a dataclass to hold registration results

* Add docstrings

* Deprecate the `registrar` module
* Rename kwarg

* Move Intrinsics to separate file

* Deprecate useless module

* Deprecate animations

* Deprecate dcm2nii
* Add docstrings

* Deprecate configs

* Sync

* Add cyclopts commands

* Ignore line length in the CLI module

* Add test for drift in the API/CLI

* Add tests.yml
* Save fresh copies of the iterations

* Add animate function

* Sync
* Prevent line-length linting on config files

* Reformat configs
* Move parse_scales to base class

* Better data transfer

* Save the datapaths

* Separate data and modules in logging

* Update animation to new loggers

* Add logging

* Change to __call__ method

* Remove Subject from save

* Fix circular imports

* Remove bloated types module
* Update packages

* Add savepath arg to CLI

* Switch CLI to __call__

* Change savepath to be a folder

* Fix GIF savepath
* Vary mu_bone every iteration

* Annotate outputs

* Enable high-precision matmuls

* Annotate output

* Update dependency path
* Fix autocomplete in subclasses

* Allow user to set different patience per scale

* Clean up signature manipulation

* Fix single patience parameter

* Fix environment

* Add test to check for CLI drift

* Fix drift

* Suppress unnecessary warning
* Make SO(3) utils pure torch

* Remove diffdrr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant