{"id":"a998cce0-c427-415e-a63f-9fa0cf68cfb4","arxiv_id":"1908.01742","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":5.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":2,"one_line_summary":"Spherical and hyperbolic trigonometry plus an azimuthal equidistant projection render 2D constant-curvature spaces in real time with dynamic curvature.","lead":"An engine renders 2D spherical and hyperbolic spaces in real time using polar coordinates and an azimuthal equidistant projection. It uses the spherical and hyperbolic laws of cosines to place vertices and tessellate geodesics, and allows the curvature constant to change during execution.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Hyperbolic interpolation equations (12) and (17) are printed with a plus sign where the hyperbolic cosine rule requires a minus sign; as written they cannot produce faithful geodesic tessellation, so the central rendering method is not reproducible from the paper.","rationale":"The reader's weakest assumption concerned the finite disc and antipodal teleport. That is a real but explicitly stated display/UI limitation and does not by itself invalidate the local constant-curvature calculations. I find the more load-bearing weakness one level down: the printed hyperbolic formulas used to tessellate geodesic edges are internally inconsistent with the hyperbolic law of cosines stated earlier in the same paper. Equations (12) and (17) are direct applications of Eq. (2), but they are not. This is not a disagreement with external consensus; it is an internal sign error. If these are typographical errors, the manuscript still needs corrected formulas and ideally a reference implementation before the central claim can be accepted from the text. If they are faithful to the code, the rendering is not actually hyperbolic. Either way, the reader's CONDITIONAL verdict is appropriate, so I do not change it. The reader noted these typos in passing; I elevate them to the primary load-bearing concern, hence partial agreement.","tokens_in":10968,"tokens_out":9322,"duration_ms":98762,"concrete_test":"Independently re-derive Eq. (17) from Theorem 2: the correct intermediate radial coordinate is ri = arccosh(cosh r1 cosh di - sinh r1 sinh di cos alpha), not the printed expression. Then evaluate both at K = -1, r1 = 1, di = 1, alpha = pi/3: the corrected ri is about 1.116, while the printed value is about 1.788. If the engine's rendered edge midpoints (from the accompanying video or a requested reference build) match the printed value, the hyperbolic tessellation is wrong; if they match the corrected value, the paper's formulas must be corrected before the method is reproducible.","verdict_should_be":"UNCHANGED","load_bearing_attack":"The central claim depends on the formulas that convert local vertex coordinates into global coordinates and then tessellate geodesic edges. In the hyperbolic case, Eq. (12) and Eq. (17) are printed as d = arccosh(cosh r1 cosh r2 + sinh r1 sinh r2 cos Dtheta) and ri = arccosh(cosh r1 cosh di + sinh r1 sinh di cos alpha), but the hyperbolic law of cosines stated in Eq. (2) requires a minus sign: cosh c = cosh a cosh b - sinh a sinh b cos C. With a plus sign, the computed edge length and intermediate radial coordinate obey the wrong identity and are systematically too large. For example, with r1 = r2 = 1 and Dtheta = pi/3, the correct d is about 1.11, while the printed formula gives about 1.78. Every intermediate vertex on a hyperbolic edge is placed using this formula, so either the equations in Section 3.3.1 are not what the engine actually executes (and the paper does not describe its own method) or the engine renders hyperbolic geodesics incorrectly. The same sign error appears in Eq. (17) for the intermediate radial coordinate. Because no source code or reference data is provided, the reader cannot tell which case holds, and the central claim is not reproducible from the text.","agreement_with_reader":"partial"},"referee_report":{"model":"deepseek-v4-flash","summary":"The paper presents a real-time rendering and physics engine for two-dimensional spaces of constant positive or negative curvature. Object positions, velocities, and shape vertices are stored in polar coordinates relative to a reference point, and global vertex positions are computed with spherical and hyperbolic laws of cosines. Geodesic edges are tessellated into straight screen segments, and an azimuthal equidistant projection maps each point's distance and bearing from the reference point directly to screen coordinates. The curvature K can be changed dynamically during execution. The paper provides the trigonometric derivation, time-lapse images of the engine's output, a complexity analysis of O(s*v*i), and a demonstration video. The main claim is that the method correctly calculates and renders shapes in a 2D space of constant curvature in real time.","tokens_in":11201,"tokens_out":6189,"duration_ms":61058,"significance":"If the algebraic statements were correct, the paper would offer a simple, parameter-free method for real-time non-Euclidean rendering with a unified treatment of spherical and hyperbolic geometry. The use of azimuthal equidistant projection to make the projection independent of the curvature sign is a useful idea for graphics applications, educational visualization, and potential dynamic-curvature tools. The paper explicitly uses standard classical theorems with no fitted parameters, which is a strength because it makes the derivations independently checkable. The complexity analysis and the demonstration via time-lapse images are also positive features. However, the hyperbolic formulas as printed contain sign and function errors that contradict the paper's own statement of the hyperbolic law of cosines; as written, the method cannot be reproduced from the text and the central claim is therefore not yet supported.","major_comments":[{"comment":"The hyperbolic edge-length and intermediate-point formulas are printed with the wrong sign. Eq. (2) states cosh(c/k) = cosh(a/k) cosh(b/k) - sinh(a/k) sinh(b/k) cos C, but Eq. (12) is d = arccosh(cosh r1 cosh r2 + sinh r1 sinh r2 cos Δθ) and Eq. (17) is ri = arccosh(cosh r1 cosh di + sinh r1 sinh di cos α). With the plus sign, the computed d and ri are larger than the true geodesic values; for example, with r1 = r2 = 1 and Δθ = π/3, Eq. (12) gives d ≈ 1.78 instead of the correct d ≈ 1.11. Since Eq. (17) places every intermediate vertex on a hyperbolic edge, the tessellation described in the paper is not a geodesic tessellation. These equations must be corrected to use the minus sign, and the authors should state explicitly whether the engine code uses the corrected or the printed form.","section":"§3.3.1, Eqs. (12) and (17)"},{"comment":"The hyperbolic position-update formula is printed with both the wrong inverse function and the wrong sign. Eq. (22) is rt1 = arccos(cosh rt0 cosh rp + sinh rt0 sinh rp cos α), but applying the hyperbolic law of cosines to triangle O C_t0 C_t1 gives rt1 = arccosh(cosh rt0 cosh rp - sinh rt0 sinh rp cos α). As printed, Eq. (22) does not follow from the stated hyperbolic cosine rule and will not produce motion along a geodesic. This is load-bearing because Corollary 4 is the basis for the reported physics of object movement.","section":"§3.3.2, Eq. (22)"},{"comment":"The definition k = 1/√K for K < 0 is invalid because √K is not real for negative K; it must be k = 1/√(−K). Without this correction, every hyperbolic formula that scales lengths by k is undefined. This is a typographical issue in a load-bearing definition, since it affects all hyperbolic equations in the paper.","section":"§3.3, definition of k"}],"minor_comments":[{"comment":"Several printed fractions are missing parentheses and are ambiguous; for example, Eq. (23) should be written Δθ = arccos((cosh rt0 cosh rt1 − cosh rp)/(sinh rt0 sinh rt1)). Please add parentheses to all quotient formulas.","section":"§3.3.1 and §3.3.2, Eqs. (6), (16), (18), (23), (24)"},{"comment":"The phrase \"the centre of the of the screen\" contains a duplicated article; it should read \"the centre of the screen.\"","section":"§3.1"},{"comment":"The word \"geodsic\" appears instead of \"geodesic\" in the sentence introducing tessellation.","section":"§3.3.1"},{"comment":"The paper should more explicitly state in the abstract or introduction that the rendered world is a finite disc with a teleport at the boundary, since this is a deviation from the full non-Euclidean plane and is only mentioned later in the method and results sections.","section":"§4.1 and §3.3"},{"comment":"References [2] and [3] are informal web sources with unstable URLs, and the URL in [2] appears malformed; please replace them with stable persistent identifiers or archival links where possible.","section":"References [2], [3]"}],"recommendation":"major_revision","confidential_remarks":null},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"First thing you should know: this is a short graphics paper with a genuinely neat idea — render both spherical and hyperbolic 2D spaces in real time using polar coordinates and an azimuthal equidistant projection, with curvature changeable on the fly. The math is standard spherical/hyperbolic trig, but the packaging is a new application and the video evidence looks credible.\n\nWhat is new: the unified projection makes the curvature knob trivial, and the complexity analysis is honest. I also give them credit for stating the finite-disc cutoff and antipodal teleport explicitly in Section 3.3 and again in Results, even though it undercuts the 'faithful full-space' phrasing in the abstract.\n\nThe soft spots are real, and they bite. Equations (12) and (17), the hyperbolic edge length and intermediate radial coordinate, are printed with the wrong sign (or at least a missing minus sign) — the hyperbolic cosine rule requires cosh c = cosh a cosh b − sinh a sinh b cos C, and the printed text is not that. The stress-test example is correct: r1=r2=1, Δθ=π/3 gives d≈1.11 vs ≈1.78 with the printed form. Same for (17). And (22)–(24) are printed as arccos of hyperbolic expressions, which is another typo for arccosh. Also the definition k=1/sqrt(K) for K<0 is just wrong. These are not cosmetic; if the engine actually executes the printed formulas, it would not render hyperbolic geodesics. If it executes the correct formulas, then the paper does not describe its own method. Either way the central reproducibility claim fails. No code or data is given, so I cannot tell which case holds.\n\nMinor issues: no measured frame rates or benchmarks for 'real-time', and the tessellation level and cutoff distance are the only free parameters, so the claim of arbitrary curvature in [−1,1] is plausible but not validated numerically.\n\nWho is this for: a graphics or math-visualization audience; it could be a reasonable workshop paper or educational note. It is not a research breakthrough, but it is not incoherent — the derivations mostly follow the correct pattern and the limitations are acknowledged. If I were the editor I would send it to peer review with a request for major revisions: fix the signs, reconcile the notation, and ideally release the source or a reproducible pseudocode. If the authors do that, I would be happy to see it used in courses. As is, I would not cite it in my own work because I cannot trust the formulas.\n\nRecommendation: send to a serious referee, but only after the sign errors are addressed; desk-rejecting would be too harsh for an idea this clear.","headline":"The unified polar-coordinate rendering idea is neat and the video looks credible, but the printed hyperbolic formulas contain sign/notation errors that make the central method non-reproducible; with corrections it deserves a serious referee, not a desk reject.","tokens_in":11762,"tokens_out":2897,"would_cite":false,"duration_ms":28840,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":["51M10","68U05"],"pacs":[],"model":"deepseek-v4-flash","headline":"One real-time pipeline can render spherical, hyperbolic, and flat 2D worlds by changing a single curvature constant.","keywords":["non-Euclidean geometry","spherical geometry","hyperbolic geometry","constant curvature","real-time rendering","azimuthal equidistant projection","polar coordinates","geodesic tessellation"],"falsifier":"Take a fixed configuration (known $K$, object position, and local vertex parameters), compute a vertex's global polar coordinates by hand from equations (3)-(6), and compare them with the screen coordinates the engine produces; any mismatch beyond floating-point rounding would refute the rendering claim, and any visible jump at the disc boundary other than the stated antipodal teleport would refute the continuity claim.","tokens_in":10719,"feed_emoji":"🧭","tokens_out":7614,"duration_ms":69503,"temperature":0.7,"pith_summary":"This paper claims that a single physics-and-graphics method can calculate and render objects moving through a 2D space of constant Gaussian curvature $K$ anywhere in $[-1,1]$, covering spherical ($K>0$), Euclidean ($K=0$), and hyperbolic ($K<0$) geometries in real time. The method stores every position in polar coordinates and draws the world with an azimuthal equidistant projection, so the same projection and the same trigonometric identities work for both signs of curvature. This is what makes the headline feature possible: the curvature can be adjusted continuously while the application runs, without rebuilding the world. If the claim holds, game engines, educational visualisations, and cartography tools could offer a single, steerable non-Euclidean space instead of separate spherical and hyperbolic renderers.","feed_headline":"Turn a dial to bend 2D space from sphere to saddle in real time","feed_subtitle":"Same polar coordinates and projection serve flat, spherical, and hyperbolic worlds — just change K.","key_machinery":"The load-bearing identities are the spherical law of cosines, $\\cos(c/r) = \\cos(a/r)\\cos(b/r) + \\sin(a/r)\\sin(b/r)\\cos C$, and its hyperbolic counterpart $\\cosh(c/k) = \\cosh(a/k)\\cosh(b/k) - \\sinh(a/k)\\sinh(b/k)\\cos C$, with radius $r=1/\\sqrt{K}$ or $k=1/\\sqrt{-K}$. They are applied to the triangle formed by the global origin, the object centre, and each vertex, which yields the vertex's global polar coordinates; the same rules insert intermediate points along a geodesic edge and advance a moving object along its trajectory. The azimuthal equidistant projection then maps each global polar vector straight onto the screen, preserving distance and bearing from the screen centre, which is why one rendering pipeline works unchanged for both spherical and hyperbolic space.","core_discovery":"The central claim is that all geometric calculations can be reduced to the spherical and hyperbolic laws of cosines applied to a triangle whose corners are the global origin, the object centre, and one vertex of the shape. Given the object's global polar position $(r_c,\\theta_c)$ and a vertex's local polar position $(r_{\\text{local}},\\theta_{\\text{local}})$, equations (3)-(6) give the vertex's global coordinates; the same identities find edge lengths, intermediate points along geodesics, and the new position of an object moving along its geodesic. Because the azimuthal equidistant projection preserves distance and bearing from the centre of the screen, the computed polar coordinates are used directly as screen positions. Thus the paper claims that any constant-curvature world in the range $-1 \\le K \\le 1$ can be rendered, and that $K$ can be changed on the fly by simply recomputing every point with the current value.","pith_inferences":["A natural extension is to re-centre the polar reference point on the camera each frame, turning the disc into a moving local chart and removing the antipodal teleport for the observed object.","The same triangle-based identities could be used for ray marching: step a ray along the local geodesic instead of tessellating shapes, which would let curved-space rendering scale per pixel rather than per shape vertex.","If the method is extended to non-constant curvature, the single-triangle cosine law must be replaced by integrating the geodesic equation, so the real-time dial works precisely because curvature is a global constant.","The antipodal teleport can be read as identifying opposite points of the disc, effectively turning the rendering space into a projective or elliptic-like quotient; whether that matches the intended geometry is a testable design choice."],"forward_implications":["A single code path renders Euclidean, spherical, and hyperbolic worlds; switching geometry is just changing the scalar $K$.","Curvature can be swept continuously from $K=1$ to $K=-1$ while objects move, so viewers can watch geodesics bend through flat space without pausing the engine.","Shapes are authored once in local polar coordinates and their vertices are recomputed under the current curvature, so the same object definition works in all three geometries.","Per-frame cost is $O(s \\cdot v \\cdot i)$ for $s$ shapes with $v$ vertices and tessellation level $i$, and motion updates cost $O(n)$ per object, making real-time rendering feasible for moderate scenes."],"supporting_citations":[{"why":"Supplies the spherical law of cosines used in the vertex, edge, and motion calculations (equations (3), (11), (19)).","marker":"[7]"},{"why":"Supplies the hyperbolic law of cosines used in the corresponding hyperbolic calculations (equations (5), (12), (22)).","marker":"[8]"},{"why":"Provides the spherical trigonometry definitions and identities on which the method's spherical branch is built.","marker":"[4]"},{"why":"Provides the non-Euclidean plane trigonometry used for the hyperbolic branch.","marker":"[5]"},{"why":"Offers a supplementary treatment of trigonometry in the hyperbolic plane that supports the hyperbolic formulas.","marker":"[6]"},{"why":"Presents the authors' demonstration video showing the engine running and changing curvature in real time.","marker":"[9]"}],"fun_headline_variants":["Curvature dial: switch sphere to hyperbola in real time","One projection to render all constant curvature worlds","Real-time non-Euclidean rendering with polar geometry","Spherical and hyperbolic trigonometry power live curvature changes","Flip the sign of K: live rendering on a sphere or saddle"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The visible world is only a finite disc: any object whose centre crosses the disc boundary is teleported to the antipodal point, so the renderer never displays the full non-Euclidean space and the teleport is an artificial discontinuity at the edge.","fun_headline_variants_meta":{"raw":{"variants":["Curvature dial: switch sphere to hyperbola in real time","One projection to render all constant curvature worlds","Real-time non-Euclidean rendering with polar geometry","Spherical and hyperbolic trigonometry power live curvature changes","Flip the sign of K: live rendering on a sphere or saddle"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000272,"raw_usage":{"total_tokens":1652,"prompt_tokens":983,"completion_tokens":669,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":599,"completion_tokens_details":{"reasoning_tokens":590}},"tokens_in":599,"tokens_out":669,"duration_ms":6973,"temperature":1.0,"reasoning_tokens":590,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-14T15:03:19.194544+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Take a fixed configuration (known $K$, object position, and local vertex parameters), compute a vertex's global polar coordinates by hand from equations (3)-(6), and compare them with the screen coordinates the engine produces; any mismatch beyond floating-point rounding would refute the rendering claim, and any visible jump at the disc boundary other than the stated antipodal teleport would refute the continuity claim.","supporting_citations":[{"cited_title":"Gellert, S","cited_arxiv_id":null,"evidence_quote":"Supplies the spherical law of cosines used in the vertex, edge, and motion calculations (equations (3), (11), (19))."},{"cited_title":"Gray, Non-euclidean geometryA re-interpretation","cited_arxiv_id":null,"evidence_quote":"Supplies the hyperbolic law of cosines used in the corresponding hyperbolic calculations (equations (5), (12), (22))."},{"cited_title":"Todhunter, Spherical Trigonometry For the use of colleges and schools","cited_arxiv_id":null,"evidence_quote":"Provides the spherical trigonometry definitions and identities on which the method's spherical branch is built."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Provides the non-Euclidean plane trigonometry used for the hyperbolic branch."},{"cited_title":"Trigonometry in the hyperbolic plane,","cited_arxiv_id":null,"evidence_quote":"Offers a supplementary treatment of trigonometry in the hyperbolic plane that supports the hyperbolic formulas."},{"cited_title":"Rendering non-euclidean space in real-time using spherical and hyperbolic trigonometry,","cited_arxiv_id":null,"evidence_quote":"Presents the authors' demonstration video showing the engine running and changing curvature in real time."}],"review_version":1}