{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2605-22851","title":"VAMP-Diff: VampPrior Latent Diffusion for Photoplethysmography Modeling","arxiv_id":"2605.22851","date":"2026-05-17","proceeding":null,"authors":["Fatemeh Ghasemi Balouei","Nathan Willemsen","Mahesh Banavar","Bahman Moraffah"],"abstract":"Photoplethysmography (PPG) has become a ubiquitous physiological signal; however, current generative models still struggle to preserve realistic waveform morphology and learn a latent structure that captures cardiac and respiratory physiology. PPG generators trained with adversarial losses can produce plausible waveforms, but provide no inference path from a real signal to a latent representation. Variational autoencoders, on the other hand, map the PPG data to latent codes, although their decoders often blur systolic upstrokes and dampen amplitude and spectral details. Diffusion models improve waveform fidelity, but typically lack an inference path for reconstruction and physiological analysis. We propose VampPrior Latent Diffusion (VAMP-Diff), a jointly trained variational diffusion model that combines a temporal PPG encoder, a conditional one-dimensional diffusion decoder, and VampPrior regularization on a compact pooled latent. The model uses full temporal latent during diffusion reconstruction, giving the decoder access to beat timing and morphology while generating samples from learned VampPrior components instead of a fixed Gaussian prior. We demonstrate on the CapnoBase dataset that VAMP-Diff produces realistic PPG signals, reconstructs sharper physiological waveforms than Gaussian-prior baselines, preserves heart-rate information, maintains respiratory-rate consistency, and is sensitive to waveform corruptions through reconstruction error.","url_abs":"https://arxiv.org/abs/2605.22851","url_pdf":"https://arxiv.org/pdf/2605.22851","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2605.22851","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2605.22851"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/fatighasemi74/VAMP-Diff","reach":null}],"summary":{"ran":7,"ran_draft_wrong":2,"ran_honours":1,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":11,"ran":10,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":11,"samples":[{"code_sha256_prefix":"7d8293c8d7b628ef","entry":"CompressedSummary1D","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7d8293c8d7b628ef"}},{"code_sha256_prefix":"fdc36b4decc95eb9","entry":"DiffusionUNet1D_SeqZ","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fdc36b4decc95eb9"}},{"code_sha256_prefix":"b3d0e8956ae46d51","entry":"FiLMResBlock1D","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b3d0e8956ae46d51"}},{"code_sha256_prefix":"161e767b6ca48e11","entry":"ResBlockEnc","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"161e767b6ca48e11"}},{"code_sha256_prefix":"252cd3b24d2fe0f0","entry":"SeqEncoder1D","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"252cd3b24d2fe0f0"}},{"code_sha256_prefix":"17e5b7145227eb25","entry":"SequenceConditionProjector","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"17e5b7145227eb25"}},{"code_sha256_prefix":"2fdf3c26c39f4b29","entry":"TimeEmbedding","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2fdf3c26c39f4b29"}},{"code_sha256_prefix":"45ae5aa0760b9558","entry":"_make_enc_stage","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"45ae5aa0760b9558"}},{"code_sha256_prefix":"b514361dfc27c08a","entry":"_make_resblocks","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b514361dfc27c08a"}},{"code_sha256_prefix":"f3a3a9eb42377a3b","entry":"reparam","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f3a3a9eb42377a3b"}},{"code_sha256_prefix":"125602e60c107cf7","entry":"VAEDiffusion","repo":"fatighasemi74/VAMP-Diff","repo_kind":"found_in_text","path":"vamp-diff/models/vae_diffusion.py","file_url":"https://github.com/fatighasemi74/VAMP-Diff/blob/HEAD/vamp-diff/models/vae_diffusion.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"125602e60c107cf7"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}