{"id":"01db1a2a-a21d-4dbb-87ca-1aba219cfa02","arxiv_id":"2411.12636","paper_version":2,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":4.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":3,"one_line_summary":"PyAWD is a new Python library that turns acoustic wave simulations into PyTorch-ready datasets and demonstrates their use for ML epicenter retrieval and data budgeting.","lead":"A new Python library, PyAWD, generates large 2D and 3D synthetic datasets of acoustic wave propagation and packages them directly for PyTorch machine learning pipelines. The authors demonstrate it on an epicenter retrieval task and data budgeting, offering a way to study seismic ML problems when real measurements are sparse.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"The printed acoustic wave equation in §2 is dimensionally inconsistent: ∂²u/∂t² = c∇²u labels c as speed with units s²/m², so the simulated wave speed may not be the physical speed; this must be checked before the tool's physical fidelity is accepted.","rationale":"The reader's weakest assumption—that acoustic waves are an untested proxy for real seismic ground motion—is legitimate and explains why the paper cannot yet claim transfer to real seismograms. I retain the reader's CONDITIONAL verdict, but for a different primary reason. The most fundamental risk to the central claim is not external validity but internal consistency: Equation (1) as printed is dimensionally inconsistent. If the wave speed parameter c is used in the PDE as written, the labeled 'speed' cannot be the physical propagation speed, and the generated datasets may not be physically meaningful. The included ML experiment would not reveal this error because the patterns remain learnable under any constant scaling of the Laplacian term. A simple homogeneous-medium arrival-time check against the analytic solution would settle whether the implementation matches the printed equation. If the code is correct and only the paper's notation is wrong, the conditional verdict can stand with a request to fix the equation and units. If the code follows the printed equation, the central claim of generating accurate synthetic seismic datasets fails. Thus the reader's CONDITIONAL recommendation is appropriate, but the acceptance conditions should explicitly include this verification.","tokens_in":11017,"tokens_out":5770,"duration_ms":58604,"concrete_test":"Clone the repository, locate the Devito operator builder used for Equation (1), and run a homogeneous-medium simulation (constant c, no attenuation, point source) with known source-receiver distance d. Compare the observed first-arrival time to the analytic travel time t = d/c using the user-supplied c. If the arrival time instead matches d/sqrt(c), the implementation effectively uses c²∇²u and the paper's equation/units are mislabeled. Also verify that absorbing or PML boundary conditions are applied and documented; without them, boundary reflections could contaminate the generated seismograms.","verdict_should_be":"UNCHANGED","load_bearing_attack":"Section 2, Equation (1) states d²u/dt² = c∇²u − α du/dt + f, and describes c as 'the wave propagation speed field (a scalar field, in s²/m²)'. For a displacement field u, c∇²u must have units m/s², requiring c to have units m²/s²; if c were a speed in m/s the equation would not be the standard acoustic wave equation. If the Devito implementation follows the printed equation, then the 'speed' parameter is not the propagation speed, and arrival times in generated datasets will not correspond to the labeled c(x,y,t). This is more load-bearing than the acoustic-vs-elastic proxy already noted by the reader because it threatens the correctness of the simulated physics itself, not merely transfer to real seismograms. The paper's closed-loop epicenter-retrieval experiment cannot detect this problem, since a wrong but self-consistent wave speed still produces learnable patterns. The authors should confirm that the implemented Devito operator and the printed formula use the same convention, and that the units in the paper are corrected.","agreement_with_reader":"partial"},"referee_report":{"model":"deepseek-v4-flash","summary":"This paper presents PyAWD, an open-source Python library that generates synthetic acoustic-wave-propagation datasets for machine learning. The library uses Devito to solve scalar and vectorial acoustic wave equations on two- and three-dimensional heterogeneous media, wraps the outputs as PyTorch datasets, and provides presets (e.g., the Marmousi field) and an interrogator abstraction for emulating seismometers. The authors demonstrate the library on a 2D epicenter-retrieval task with two interrogators, comparing seven ML regressors, and additionally study data budgeting (training-set size, number of interrogators, and input noise). The paper argues that PyAWD fills a gap by producing large, PyTorch-compatible synthetic seismic datasets that can support ML research in seismology.","tokens_in":11221,"tokens_out":6800,"duration_ms":68361,"significance":"If the implementation is correct, PyAWD addresses a real practical gap: few integrated tools generate machine-learning-scale, PyTorch-ready synthetic seismic-like datasets with flexible control over sources, media, and interrogation points. The library is open-source, documented with notebooks, and the epicenter-retrieval demo shows a nontrivial regression problem in which raw 1000-step two-channel seismograms yield NMSE well below the constant baseline. The data-budgeting experiments illustrate a useful application. However, the paper's core validation is closed-loop, and the printed wave equation contains a unit/convention error that must be resolved before the physical-fidelity claims can be accepted. The manuscript is therefore promising but needs substantial revision.","major_comments":[{"comment":"The stated units for c are incorrect. The text says 'c describes the wave propagation speed field (a scalar field, in s²/m²)'. For Eq. (1), d²u/dt² = c∇²u, with u in meters and t in seconds, the coefficient c must have units m²/s² if it multiplies ∇²u; if c is intended to be a speed in m/s, the equation should be c²∇²u. The closed-loop experiment in Section 3 cannot detect a wrong but self-consistent convention, because a uniformly scaled speed still produces learnable arrival-time patterns. Please verify that the Devito operator matches the printed formula, correct the equation and/or units, and state explicitly whether the library's 'wave speed' parameter is phase speed or its square.","section":"§2, Eq. (1)"},{"comment":"The validation is entirely closed-loop: the same simulator generates both training and test data, and the test epicenters are drawn from the same distribution as the training epicenters. The statement in §3.1 that the experiment 'assess[es] that PyAWD does not oversimplify reality' is therefore not supported. The reported NMSE measures internal consistency under the simulator's forward model, not agreement with real seismograms or with an independent reference. Please add an external sanity check, for example comparing simulated arrival times with analytic travel times in a homogeneous medium, or comparing against an independent finite-difference/finite-element solver for a heterogeneous model, and report the discrepancy.","section":"§3.1–§3.3"},{"comment":"The main accuracy comparison reports that the training/testing procedure was run 10 times, but Figure 6 shows no error bars, confidence intervals, or statistical tests. Without variability information, claims such as 'the Temporal Convolutional Neural Network and the Extra Trees largely outperform the other models' (§4) are not substantiated. Please add error bars or per-repetition scatter points, and ideally a paired significance test across the 10 splits.","section":"§3.2, Figure 6"},{"comment":"The finite-difference discretization is presented without any discussion of numerical stability (CFL condition), grid dispersion, or boundary conditions. For a dataset-generation library whose outputs are used as ground truth, the absence of a convergence/stability check leaves open the possibility that generated samples contain numerical artifacts. Please report the scheme's order of accuracy, the CFL criterion used by the implementation, and a convergence test on a case with an analytic solution.","section":"§2, Eq. (2)"}],"minor_comments":[{"comment":"Equation (1) uses ordinary derivatives d²u/dt² for what is a partial differential equation; use ∂²u/∂t² and ∂²u/∂x² throughout.","section":"§2, Eq. (1)"},{"comment":"The equation is labeled 'anisotropic' but the coefficient c is a scalar field. Please clarify what anisotropy means in this context, or use the conventional terminology.","section":"§2, text after Eq. (1)"},{"comment":"The staggered-grid offsets hx and hy in Eq. (2) are not defined, and the finite-difference stencil is not fully specified. Please provide the explicit stencil or a reference.","section":"§2, Eq. (2)"},{"comment":"The boundary conditions of the simulations are never stated. Since the epicenter-retrieval motivation relies on wave reflections from heterogeneities, specifying whether boundaries are absorbing or reflecting is essential for reproducibility.","section":"§3.1"},{"comment":"Figure 6 appears to use a logarithmic vertical axis, but the axis label is not explicit. State the scale explicitly once error bars are added.","section":"§3.2, Figure 6"},{"comment":"The claim that 'no tool allows the generation of large datasets containing simulated measurements of the ground motion' is too strong given the cited Synthoseis and full-waveform-inversion works. Please qualify the novelty, e.g., 'no open-source tool that combines 2D/3D heterogeneous acoustic simulation with PyTorch dataset integration and automatic initial-condition randomization.'","section":"Abstract"},{"comment":"The dataset sizes are inconsistent: §3.1 says 3584 training and 512 test samples, while §3.2 mentions a training set of 3284 samples and a random split into 80%/20% subsets. Please reconcile these numbers and describe the exact split procedure.","section":"§3.1–§3.2"},{"comment":"The statement '62 samples seem to be enough to beat the constant average model' is presented without a statistical test or a methodology for choosing this threshold. Please indicate how this number is derived.","section":"§3.3, Figure 9a"},{"comment":"There are multiple typos and inconsistencies in naming: 'Pytorch' should be 'PyTorch', 'ExtraTrees' vs 'Extra Trees' should be unified, and in the code-availability section 'PyA WD' should be 'PyAWD'.","section":"Throughout"}],"recommendation":"major_revision","confidential_remarks":"The unit/convention issue in Eq. (1) and the closed-loop validation are the main technical blockers. If the authors can correct the wave-equation description, verify the Devito implementation, and add an external accuracy check (e.g., against analytic or independent-numerical solutions), the paper could become acceptable. The tool itself appears useful and well-integrated with PyTorch, but the current evidence does not support the 'does not oversimplify reality' claim."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"PyAWD ships real code: a Devito-based simulator wrapped in a PyTorch Dataset interface, with on-the-fly generation, customizable sources and media, and working notebooks. That integration is genuinely new and will save time for people who need labeled wave-propagation data for ML. The epicenter-retrieval demo is clearly described and the data-budgeting plots are a reasonable illustration. Credit where it's due: open source, documented, and reproducible.\n\nNow the soft spots. The abstract says 'no tool allows the generation of large datasets containing simulated measurements of the ground motion,' but Synthoseis and HEMEW-3D are cited in the references; that claim needs to be narrowed or defended. The evaluation is fully closed-loop: train and test are both generated by PyAWD, so the ML results show internal consistency, not transfer to real seismograms. The authors admit the acoustic-wave proxy can't give distance from arrival times, which is honest, but then the whole motivating connection to real seismic ground motion rests on an untested assumption.\n\nThe bigger problem is in Section 2. Equation (1) is written as d²u/dt² = c∇²u, with c described as the wave propagation speed in units of s²/m². That cannot be right: if u is displacement in meters, c needs units of m²/s² (speed squared) for the equation to make sense. If the Devito implementation follows the printed equation, the parameter the authors call 'speed' isn't the propagation speed, and arrival times in the generated datasets won't correspond to the labeled c(x,y,t). The closed-loop demo can't detect this because a wrong but self-consistent wave speed still gives learnable patterns. This is easy to check against the code, but until it's resolved, the physical fidelity of the tool is in doubt.\n\nI agree with the reader's conditional verdict, and I'd add the unit issue as a load-bearing concern. The paper deserves a serious referee, but it should be sent back with a request to fix the units, verify the Devito convention, add error bars to the accuracy comparison, and either justify the gap claim or soften it. A quick experiment on real seismograms, even a small one, would go a long way toward making the usefulness argument credible.\n\nRecommendation: worth a round of peer review, not a desk reject, but only after the physics question is answered.","headline":"PyAWD is a useful, genuinely PyTorch-integrated synthetic wave simulator with real code, but the paper overstates its novelty, validates only in a closed loop, and prints a wave equation with incorrect units that needs checking.","tokens_in":11747,"tokens_out":3983,"would_cite":false,"duration_ms":39215,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"PyAWD is a Python library for generating large, labeled acoustic-wave datasets for machine learning, with an epicenter-retrieval demonstration from two sensors.","keywords":["wave simulation","synthetic seismic data","acoustic wave propagation","pytorch datasets","machine learning","epicenter retrieval","data budgeting","heterogeneous media"],"falsifier":"Train a model on PyAWD acoustic data and test it on real single-station seismograms from a region with a known velocity model; if the model's normalized mean squared error is no better than predicting the training-set mean, the central claim that these synthetic data support useful seismic machine learning is falsified.","tokens_in":10802,"feed_emoji":"🌊","tokens_out":11169,"duration_ms":99005,"temperature":0.7,"pith_summary":"PyAWD is a proposed answer to a concrete gap: seismic data is sparse and expensive to collect, yet no existing tool produces large, labeled datasets of simulated ground motion for machine learning. The paper claims PyAWD fills that gap by solving acoustic wave propagation in heterogeneous media and exposing each simulation as a tensor-based dataset that deep-learning pipelines can consume directly, with full control over wave speed, attenuation, external forces, discretization, and medium composition. To show the data are not trivial, the authors run an epicenter-retrieval study in which models trained on raw two-sensor seismograms locate the source in a heterogeneous field better than simple baselines, and they use the same generator to study data budgeting—how much data, how many sensors, and how much noise the task tolerates. A sympathetic reader would take the paper's contribution to be an enabling tool plus evidence that synthetic wave data supports nontrivial seismic ML tasks.","feed_headline":"PyAWD generates large synthetic seismic datasets for ML","feed_subtitle":"Customizable acoustic-wave simulations stream into deep-learning pipelines for epicenter and data-budget questions.","key_machinery":"The load-bearing object is the anisotropic nondispersive acoustic wave equation $$\\frac{$d^{2}$u}{$dt^{2}$} = c\\,\\$nabla^{2}$ u - \\$\\alpha$\\,\\frac{du}{dt} + f$$, where $u$ is the displacement field, $c=c(x,y,t)$ is a spatio-temporally varying propagation-speed field, $\\alpha$ an attenuation factor, and $f$ an external force. PyAWD discretizes this equation with finite differences and wraps the solver so a user can generate many simulations with different media, sources, and sensor placements; each simulation is returned as a sequence of seismograms recorded by 'interrogators,' the library's abstraction for seismometers. The demonstration's physical bet is that wave self-interference in a heterogeneous medium encodes information about source location, so raw multi-channel seismograms can be fed directly to a regression model.","core_discovery":"The central claim is that PyAWD is the first library that couples customizable finite-difference simulation of acoustic wave propagation with on-demand generation of ML-ready datasets, and that this is enough to support realistic seismic inverse problems. In the demonstration, the library generates 4096 simulations in a 256×256 discretized Marmousi velocity model, each running 10 seconds with two interrogators recording horizontal and vertical motion at 100 hertz; randomized epicenters make the training set cover only 5.57 percent of possible grid positions. Temporal convolutional networks and Extra Trees both retrieve epicenters with normalized mean squared error well below the constant baseline, and the generated data reveal spatial error patterns and data-budgeting curves. The paper's own caveat is that the wave is acoustic rather than elastic, so the usual P/S arrival-time distance cue is absent from these signals.","pith_inferences":["A natural test the paper does not run is to swap the acoustic solver for an elastic one; because elastic waves carry P/S arrival-time differences, the two-interrogator advantage should reappear or strengthen, and its absence in the acoustic demo could be checked directly.","The data-budgeting curves would become actionable only after a real-data validation step: compare a model trained on PyAWD data and finetuned on a small real set against one trained on real data alone, which the paper leaves as future work.","The tool's design implies a benchmark suite: fixed velocity models, source distributions, and interrogator layouts could standardize comparisons of epicenter-location architectures, an extension not proposed in the paper.","Because the simulator controls the medium exactly, it supports controlled experiments on sensor placement and noise robustness that real deployments cannot provide, and the results of those experiments could inform physical deployment choices."],"forward_implications":["Any researcher can create arbitrarily large, labeled sets of wave-propagation simulations without deploying physical seismometers, making data-scarce seismic ML problems tractable as a first pass.","Because the output is a standard tensor-based dataset, synthetic simulations can be streamed on the fly, augmented, shuffled, and batched through existing deep-learning data pipelines.","In the epicenter demo, two interrogators suffice for a temporal convolutional network to beat simple baselines, suggesting that one- or two-station arrays can carry more location information than classical triangulation assumes.","The same generator yields learning curves that quantify how many samples, how many sensors, and how much noise the task tolerates—inputs to a data-budgeting decision before field deployment.","Error heatmaps over all possible source coordinates expose where a model is weakest (near field boundaries), which can guide sensor placement and model improvement."],"supporting_citations":[{"why":"Supplies the anisotropic nondispersive acoustic wave equation that PyAWD solves.","marker":"Demanet (2015)"},{"why":"Describes the finite-difference solver library that runs the wave propagation simulations.","marker":"Louboutin et al. (2019)"},{"why":"Documents the architecture and performance of the finite-difference stencil engine used by PyAWD.","marker":"Luporini et al. (2020)"},{"why":"Defines the tensor and data-loading ecosystem that PyAWD's datasets integrate with.","marker":"Paszke et al. (2017)"},{"why":"Contributes the Marmousi velocity model used as the heterogeneous propagation field in the demonstration.","marker":"Versteeg (1994)"},{"why":"Frames the epicenter retrieval task and prior convolutional-neural-network approach that the demo builds on.","marker":"Perol et al. (2018a)"},{"why":"Introduces the data-budgeting concept that the paper's learning-curve and sensor-count experiments address.","marker":"Zhao et al. (2022)"},{"why":"Supplies learning-curve methodology used to relate training-set size to achievable accuracy.","marker":"Mohr and van Rijn (2022)"},{"why":"Provides the Extra Trees algorithm, one of the top-performing models in the epicenter benchmark.","marker":"Geurts et al. (2006)"},{"why":"Defines the temporal convolutional network architecture that gives the best epicenter-retrieval results.","marker":"Lea et al. (2016)"}],"fun_headline_variants":["PyAWD generates ML-scale synthetic seismic datasets","Python library creates synthetic acoustic wave data for ML","PyAWD: customizable acoustic-wave simulations for deep learning","Synthetic seismic data on demand: PyAWD for epicenter retrieval","PyAWD produces realistic seismic simulations for ML pipelines"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The load-bearing premise is that acoustic wave propagation through a prescribed velocity model is an adequate proxy for real seismic ground motion, so that performance measured on simulated data transfers to real seismograms.","fun_headline_variants_meta":{"raw":{"variants":["PyAWD generates ML-scale synthetic seismic datasets","Python library creates synthetic acoustic wave data for ML","PyAWD: customizable acoustic-wave simulations for deep learning","Synthetic seismic data on demand: PyAWD for epicenter retrieval","PyAWD produces realistic seismic simulations for ML pipelines"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000237,"raw_usage":{"total_tokens":1479,"prompt_tokens":890,"completion_tokens":589,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":506,"completion_tokens_details":{"reasoning_tokens":510}},"tokens_in":506,"tokens_out":589,"duration_ms":6269,"temperature":1.0,"reasoning_tokens":510,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-12T17:19:13.371094+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Train a model on PyAWD acoustic data and test it on real single-station seismograms from a region with a known velocity model; if the model's normalized mean squared error is no better than predicting the training-set mean, the central claim that these synthetic data support useful seismic machine learning is falsified.","supporting_citations":[],"review_version":1}