Changes in version 0.1.2 - Fixed tulpa_mesh(max_edge = ...) collapsing to zero triangles for some (max_edge, cutoff) settings and point counts. Vertex deduplication could merge extended-hull boundary vertices that fell within max_edge * 0.3 of each other, deleting a constraint edge and leaving the boundary loop open; the constrained triangulation then erased every triangle. Boundary and hole vertices are now protected from deduplication so the constraint loop stays closed. - tulpa_mesh() now errors loudly when the triangulation yields zero triangles (for example a collinear point set) instead of returning an empty mesh that silently produces all-zero FEM matrices. Changes in version 0.1.1 (2026-04-03) - Removed single quotes from person names and algorithm names in DESCRIPTION Title and Description fields per CRAN policy. - Added Artem Amirkhanov (CDT library) and William C. Lenthe (predicates.h) to Authors@R with ctb and cph roles. - Updated inst/COPYRIGHTS to separately document predicates.h (BSD-3-Clause). Changes in version 0.1.0 Initial CRAN release. Mesh Generation - tulpa_mesh(): constrained Delaunay triangulation with formula interface, sf boundary support (POLYGON, MULTIPOLYGON, holes), hexagonal lattice refinement, Ruppert refinement (min_angle, max_area), and vertex deduplication. - tulpa_mesh_sphere(): icosahedral geodesic meshes with 3D surface FEM. - tulpa_mesh_1d(): temporal meshes with tridiagonal FEM matrices. - tulpa_mesh_graph(): metric graph meshes for network SPDE models. FEM Assembly - fem_matrices(): P1 linear FEM producing mass (C), stiffness (G), and projection (A) sparse matrices. Supports lumped mass, barrier models, and parallel assembly via RcppParallel. - fem_matrices_p2(): P2 quadratic FEM with 6-node triangular elements. - fem_matrices_nonstationary(): spatially varying kappa/tau weighting. Mesh Operations - mesh_quality(), mesh_summary(), plot.tulpa_mesh(): diagnostics. - subdivide_mesh(), subset_mesh(), mesh_components(): mesh manipulation. - refine_mesh(): adaptive refinement from error indicators. - as_tulpa_mesh(): convert fmesher/INLA meshes. - barrier_triangles(): identify barrier regions from polygons. - mesh_crs(), set_crs(): CRS support.