You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
gptoolbox
Share 'gptoolbox'
https://github.com/alecjacobson/gptoolbox/
This is a toolbox of useful matlab functions for geometry processing. There are also tools related to constrainted optimization and image processing. Typically these are utility functions that are not stand alone applications.
Here's an incomplete list of cool features this matlab toolbox contains:
- wrappers for TetGen, Triangle, QSlim, meshfix
- mesh smoothing
- mesh clean up (remove duplicates, remove unreferenced)
- geodesic distances on triangle and tetrahedral meshes
- mesh quantities and queries (normals, discrete gaussian curvature, list boundary edges, topology, angles, dihedral angles etc.)
- mesh deformation (as-rigid-as-possible (ARAP), moving least-squares, etc.)
- mesh parameterization (harmonic, least squares conformal, ARAP, etc.)
- automatic skinning weight computation (bounded biharmonic weights, bone heat)
- 2D triangle mesh from binary image
- Input/Output for many mesh formats (.obj,.off,.stl,.wrl,.ply,.mesh,.node,.ele,.poly,.smf,.bdl,.face)
- discrete differential geometry operators for triangle and tetrahedral meshes (cotangent Laplacian, gradient, divergence)
- quadratic programming, active set solver
- scribble-based image colorization, diffusion curves
- exact (un)signed distance field computation for meshes
- constructive solid geometry operations on meshes, booleans
- accelerated point location in triangle and tetrahedral meshes
- image dithering
- deep matlab function dependency
Cite As
Alec Jacobson (2024). gptoolbox (https://github.com/alecjacobson/gptoolbox), GitHub. Retrieved .
Requires
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Mathematics > Computational Geometry >
- Mathematics and Optimization > Mapping Toolbox > Geometric Geodesy >
- Radar > Mapping Toolbox > Geometric Geodesy >
- Sciences > Mathematics > Geometry > Computational Geometry >
Acknowledgements
Inspired by: Toolbox Graph
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
external
- affine_fit
- cbrewer
- cmyk2rgb
- combn
- cprintf
- dijk
- dpsimplify
- exactgeodesic
- geodome
- GetFullPath
- hex2rgb
- hilbert2
- hilbert3
- Hungarian
- icosahedron
- inferno
- interpolate_cbrewer
- inv2
- inv3
- lineSegmentIntersect
- luq
- magma
- mask2poly
- msm_to_hb
- myaa
- newquaternion
- patcht
- plasma
- plot_brewer_cmap
- preserve_history
- progressbar
- quaternionrotate
- read_ply
- rgb2cmyk
- rgb2hex
- saveTightFigure
- spnull
- spspaces
- ssim
- ssim_index
- tabcomplete
- tilefigs
- timeit
- viridis
- vrml
- write_ply
external/exactgeodesic
- create_flat_triangular_mesh
- create_hedgehog_mesh
- create_subdivision_pattern
- example1.m
- example2.m
- example3.m
- example4.m
- example5.m
- extract_coordinates_from_path
- geodesic_convert_surface_points.m
- geodesic_create_surface_point
- geodesic_delete.m
- geodesic_distance_and_source.m
- geodesic_new_algorithm
- geodesic_new_mesh
- geodesic_propagate
- geodesic_trace_back
external/toolbox_fast_marching
- batch_landmarks_error.m
- batch_propagation_mesh.m
- batch_shape_meshing.m
- callback_active_contour
- compile_mex.m
- compute_alpha_map
- compute_bending_invariant
- compute_distance_landmark
- compute_eccentricity_transform
- compute_edge_energy
- compute_geodesic
- compute_geodesic_mesh
- compute_heuristic_landmark
- compute_heuristic_multiresolution
- compute_levelset_shape
- compute_saddle_points
- compute_shape_boundary
- compute_voronoi_triangulation
- compute_voronoi_triangulation_mesh
- convert_distance_color
- display_eccentricity
- display_segmentation
- divgrad
- eucdist2
- generate_constrained_map
- load_potential_map
- perform_active_contour
- perform_circular_fast_marching_2d
- perform_farthest_landmark_sampling
- perform_farthest_point_sampling
- perform_farthest_point_sampling_boundary
- perform_farthest_point_sampling_mesh
- perform_fast_marching
- perform_fast_marching
- perform_fast_marching_mesh
- perform_fmstar_2d
- perform_fmstar_3d
- perform_front_propagation_2d.m
- perform_front_propagation_2d_slow
- perform_geodesic_interpolation
- perform_lloyd_mesh
- perform_redistancing
- pick_curves
- pick_start_end_point
- plot_constrained_path_planing
- plot_fast_marching_2d
- plot_fast_marching_3d
- plot_fast_marching_mesh
- plot_volumetric_data
- publish_html
- toolbox_fast_marching.m
- vol3d
external/toolbox_fast_marching/mex/anisotropic-fm-feth
external/toolbox_fast_marching/tests
- test_active_contour.m
- test_anisotropic.m
- test_anisotropic_feth.m
- test_anisotropic_fm.m
- test_anisotropic_fm_old.m
- test_bending_invariants.m
- test_bug.m
- test_circular.m
- test_circular_fast_marching_2d.m
- test_circular_prior.m
- test_constrained_map.m
- test_distance_approximation.m
- test_distance_compression.m
- test_eccentricity.m
- test_eucldist.m
- test_farthest_sampling_2d.m
- test_farthest_sampling_3d.m
- test_farthest_sampling_mesh.m
- test_farthest_sampling_shape.m
- test_fast_marching_2d.m
- test_fast_marching_3d.m
- test_fmstar_2d.m
- test_fmstar_3d.m
- test_fmstar_error.m
- test_fmstar_landmark.m
- test_fmstar_path_planing.m
- test_fmstar_weight_2d.m
- test_geodesic_interpolation.m
- test_geodesic_vs_euclidean.m
- test_heuristic_mesh.m
- test_influence.m
- test_landmark.m
- test_landmark_error.m
- test_multiple_paths_2d.m
- test_multiple_paths_3d.m
- test_path_planing.m
- test_propagation_2d.m
- test_propagation_mesh.m
- test_propagation_shape.m
- test_redistancing.m
- test_segmentation.m
- test_skeleton.m
- test_vol3d.m
- test_voronoi_segmentation.m
- test_voronoi_triangulation.m
external/toolbox_fast_marching/toolbox
- check_face_vertex
- clamp
- compute_cuvilinear_abscice
- compute_distance_to_points
- compute_edges
- compute_edge_face_ring
- compute_gaussian_filter
- compute_grad
- compute_vertex_ring
- crop
- getoptions
- imageplot
- image_resize
- load_image
- mmax
- nb_dims
- num2string_fixeddigit
- perform_blurring
- perform_conjugate_gradient
- perform_contour_extraction
- perform_convolution
- perform_curve_extraction
- perform_curve_resampling
- perform_histogram_equalization
- perform_tensor_recomp
- perform_vf_normalization
- plot_mesh
- prod_vf_sf
- progressbar
- read_mesh
- read_off
- rescale
- triangulation2adjacency
imageprocessing
- denoise
- depth_bars
- depth_darken
- dith
- get_scribbles
- get_spray_painting
- gp_bwboundaries
- gp_bwlabel
- gray2rgb
- hatch
- image_laplacian
- imdarken
- imdir
- imgrid
- iminpaint
- imtrim
- imupsample
- imwrite_gif
- levin
- lin2oklab
- lischinski
- median_filter
- oklab2lin
- oklab2rgb
- over
- packpng
- photoshop_imresize
- photoshop_imshow
- randdither
- random_color
- rgb2oklab
- roifillpyramid
- sliding_comparison
- text_to_image
- unique_images
- unpackpng
- vhs
- writeGIF
images
matrix
- admm
- affine_null_space
- backtracking_line_search
- bin_packing
- copysign
- cspy
- debug_sparse
- default_mosek_param
- default_quadprog_param
- diag_blk_inv
- full_sparse
- graph_coloring
- interleave_rows
- kroneye
- l12_min
- LBFGS
- lexmin
- linesolve_with_fixed
- line_search
- lu_lagrange
- matrixnormalize
- maxnz
- merl_quadprog
- minnz
- min_quad_with_fixed
- min_quad_with_fixed_active_set
- nmultichoosek
- normalizerow
- normrow
- pagepinv
- pso
- quadprog_box
- randcycle
- rand_rotation
- readDMAT
- repdiag
- repdiag_matrix
- sample_discrete
- schur_complement
- sparse_eigs
- spinv
- writeDMAT
mesh
- add_isolines
- add_lights
- add_shadow
- adjacency_dihedral_angle_matrix
- adjacency_edge_cost_matrix
- adjacency_incident_angle_matrix
- adjacency_list
- adjacency_matrix
- all_pairs_distances
- alpha_complex
- animated_tetramesh
- animated_trisurf
- annulus
- apply_ambient_occlusion
- apply_matcap
- apply_texture_map
- arap
- arap_dof
- arap_energy
- arap_gradient
- arap_hessian
- arap_linear_block
- arap_rhs
- arc_to_cubics
- avgedge
- axisangle2matrix
- axisangle2quat
- axisanglebetween
- bad_quad_mesh_from_quadtree
- bake_onto_vertices
- barycenter
- barycentric_coordinates
- beach_ball
- bernstein_eval
- betti
- bfs_orient
- biharmonic_bounded
- biharmonic_coordinates
- biharmonic_distance
- biharmonic_embedding
- bone_forest
- bone_heat
- bone_offsets
- bone_parents
- bone_visible
- boundary_conditions
- boundary_faces
- bounding_box
- box_each_element
- box_height_field
- buckliball
- bwmesh
- bwstencil
- cage2tet
- capsule
- catmull_clark
- catmull_rom_eval
- catOBJs
- cat_meshes
- cdt
- centroid
- circular_arc_to_cubics
- circumradius
- clean_dir
- clean_mesh
- clean_tetgen_mesh
- closing
- collapse_close_points
- combine
- composite_harmonic_mapping
- composite_mvc
- conformalized_mean_curvature_flow
- conic
- conncomp
- connectedComponent
- connectedComponentV
- connected_components
- conservative_edge_matching
- convexness
- cookie_cutter
- coordinate_constraint
- cotangent
- cotmatrix
- cotmatrix3
- cotmatrix_embedded
- cotmatrix_intrinsic
- covariance_scatter_matrix
- create_irregular_grid
- create_irregular_grid_with_min_angle.m
- create_regular_grid.m
- crouzeix_raviart_cotmatrix
- crouzeix_raviart_grad
- crouzeix_raviart_massmatrix
- crust
- cube
- cubic_cubic_integrated_distance
- cubic_cubic_intersect
- cubic_eval
- cubic_flat_eval
- cubic_is_flat
- cubic_roots
- cubic_simplify
- cubic_split
- cubic_subdivide
- cubic_vertex_removal
- cubic_winding_number
- curvature
- curve_smooth
- cut_edges
- cylinder_mesh
- deform
- deform_skeleton
- delaunayize
- delaunay_neighbors
- delta_mush
- df_build
- df_build_fast
- df_query
- dihedral_angles
- dijkstra_shepard
- dirac_eigs
- dirac_operator
- discrete_curvatures
- discrete_gaussian_curvature
- discrete_mean_curvature
- distribute_on_ground
- div
- div3
- divmatrix
- div_intrinsic
- doublearea
- doublearea_intrinsic
- draw_boxes
- dual
- dualquatlbs
- dual_subdivide
- eat_comments
- edges
- edges_to_path
- edge_cylinders
- edge_flaps
- edge_lengths
- edge_triangle_adjacency
- ellipse_to_spline
- emboss
- encage
- engraving
- equilateral_tiling
- expand_axis
- explode_tetramesh
- exterior_edges
- exterior_skinning_modes
- extrude
- faces_first
- faces_in_polygon
- facet_adjacency_matrix
- facet_laplacian
- falpha
- false_barycentric
- farthest_points
- fast_mass_springs
- fd_bilinear_coefficients
- fd_grad
- fd_laplacian
- fd_plot_stencil
- fd_trilinear_coefficients
- fibonacci_sphere_sampling
- fill_holes
- find_ears
- fit_rigid
- fit_rotation
- fit_rotations
- fixNEIGH
- flatten_splines
- flipped_tet_orders
- flip_ears
- flip_edges
- forward_kinematics
- fphong
- fsoft
- gaussmap
- geomedian
- getlayers
- getlayershe.m
- get_control_points
- get_pencil_curve
- get_pencil_curves
- glue_reverse
- grad
- grad3
- grad_intrinsic
- green_coordinates
- group_sum_matrix
- half_space_intersect
- harmonic.m
- hausdorff
- hcp_lattice
- hds.m
- heat_geodesic
- heat_map
- hessian_squared
- hks
- icp
- image_mesh
- inequality_constraints_from_graphs
- inertia_tensor
- inflate
- initialize_quadtree
- input_medit
- inradius
- internalangles
- internalangles_intrinsic
- intrinsic_delaunay_cotmatrix
- in_element
- in_elements
- in_mesh
- in_quadtree
- isolines_map
- isometric_curve_flow
- is_acute
- is_boundary_facet
- is_delaunay
- is_extrinsic_delaunay
- is_intrinsic_delaunay
- is_planar
- is_self_intersecting
- is_vertex_nonmanifold
- iterative_laplacian_mesh_editing
- joints
- kharmonic
- laplacian_editing_system
- laplacian_mesh_editing
- laplacian_smooth
- lapsmoothF
- lazy_cage
- lbs
- lbs_matrix
- limit_faces
- linear_elasticity
- linear_elasticity_stiffness
- linear_sweep
- lloyd_sphere
- load_mesh
- local_max
- local_min
- loop
- loop_exact_eval
- lscm
- manifold_patches
- mark_extrema
- massmatrix
- massmatrix3
- massmatrix_embedded
- massmatrix_intrinsic
- material_boundary_facets
- mean_value_laplacian
- mesh_boolean_winding_number
- metropolis_hastings
- minimal_bounding_sphere
- minimal_bounding_sphere_welzl
- minkowski_sum
- moebius_strip
- monotonicity_matrix
- monotonic_biharmonic
- moveEV
- moveFV
- moveVF
- murali_funkhouser
- mvc
- natural_neighbor
- near_mesh
- neumannmatrix
- nonmanifold_edges
- normals
- normal_derivative
- octahedron
- offset_curve
- oloid
- on_boundary
- orbifold
- ordered_outline
- orient_outward
- outline
- outline_loop
- parse_path
- parse_svg_transform
- partition
- perform_edge_collapse
- per_corner_normals
- per_edge_normals
- per_vertex_frames
- per_vertex_normals
- planarize
- planar_patches
- plane_project
- plot_cubic
- plot_directed_edges
- plot_edges
- plot_spline
- plot_taper
- plt
- png2mesh
- png2objandtga
- png2poly
- point_cubic_squared_distance
- point_inside_polygon
- point_spline_signed_distance
- point_spline_squared_distance
- point_visible
- poly2mesh
- poly2VEH
- polygonize
- polygons_to_triangles
- prebiharmonic
- project_point_to_line_segment
- project_to_lines
- prolongation
- pseudoedge_dof
- quadratic_eval
- quadratic_to_cubic
- quadrature_points
- quadtree_gradient
- quadtree_laplacian
- quad_facet_adjacency_matrix
- quad_upsample
- quat2mat
- quatbetween
- quatslerp
- quattrans2udq
- qvr
- randball
- random_points_on_mesh
- randsphere
- rasterize
- ray_polygon_intersect
- read3DS
- readBDL
- readBF
- readEDGE
- readELE
- readFACE
- readIPI
- readLOG
- readMESH
- readMSH
- readNEIGH
- readNODE
- readOBJ
- readOBJfast
- readOBJ_sequence
- readOFF
- readPLY
- readPOLY_pyramid
- readPOLY_triangle
- readSDF
- readSEL
- readSTL
- readSVG
- readSVG_cubics
- readSVOX
- readTET
- readTGF
- readVOX
- readWRL
- region_boundary_conditions
- regular_tetrahedral_mesh
- relative_coordinates
- relative_dirac_operator
- remesh_at_handles
- remesh_at_points
- remesh_max
- remesh_planar_patches
- remove_degenerate_faces
- remove_duplicate_simplices
- remove_duplicate_vertices
- remove_small_components
- remove_unreferenced
- repmesh
- resample_polygon
- rest_on_ground
- retarget
- reuleaux_triangle
- revolve
- rhombicosidodecahedron
- rodrigues
- rotate_about
- sample_edges
- sample_interior
- schwarz_lantern
- screw
- sct
- segment_segment_squared_distance
- select_region
- self_collision_barrier
- self_collision_barrier_cap_sym
- self_collision_barrier_line_sym
- shader
- sharp_edges
- shell
- shepard
- showvoronoi
- signed_distance_direction
- simplify_complex
- skeleton_extraction
- skinning_transformations
- slerp
- slice_isolines
- slice_tets
- slice_triangles
- smith_and_schaefer
- snap_points
- snap_points_to_close_edges
- snf
- solid
- solid_angle
- spherical_subdivision
- sphericon
- spiral_mesh
- spline_area
- spline_cage
- spline_G1_subspace
- spline_to_poly
- spline_to_poly
- spline_upsample
- spline_winding_number
- split_backfacing
- split_edges
- sqrt3
- stable_camva
- stacktimes
- stadium
- stam_order
- statistics
- stiff_points_lbs
- stretch_bones_lbs
- stvk_modal_derivatives
- subdivided_sphere
- super_fibonacci
- surface_graph
- surf_to_mesh
- symmetric_dirichlet
- symmetric_dirichlet_sym
- takeo_arap
- takeo_asap
- tangent_to_object_normal_map
- texture_coords
- text_to_mesh
- torus
- total_signed_curvature
- total_signed_occurrences
- tri2tet
- tri2tgf
- triangles_from_edges
- triangles_from_strip
- triangle_strip
- triangle_triangle_adjacency
- triangulate_curves
- triangulate_poly_pyramid
- tricontour
- triinterp
- trim_with_spline
- TriScatteredInterpVector
- tsurf
- tsurf_cad
- tt
- tube
- tutte
- txt
- udq2quattrans
- unbake_normal_map
- uniformly_sample
- uniformly_sample_edges
- uninterp
- union2tet
- untangle
- unzip_corners
- upsample
- vector_area_matrix
- vertex_triangle_adjacency
- volume
- volume_intrinsic
- voronoi_tetgen
- voxelize
- voxel_grid
- voxel_surface
- vtxpolyfit
- vv
- wachspress_laplacian
- wedding_cake
- winding_number_clean
- wireframe
- wks
- write3DS
- writeBB
- writeBDL
- writeBF
- writeDAE
- writeELE
- writeGLTF
- writeMDD
- writeMESH
- writeMSH
- writeNODE
- writeOBJ
- writeOFF
- writePLY
- writePOLY_pyramid
- writePOLY_tetgen
- writePOLY_triangle
- writeSEL
- writeSMF
- writeSTL
- writeSVG
- writeSVG_cubics
- writeTGF
- writeWIRE
- write_tsurf_to_gltf
- write_tsurf_to_obj_and_png
mex
- ambient_occlusion.m
- blue_noise.m
- box_intersect.m
- collapse_small_triangles.m
- decimate_cgal.m
- decimate_libigl.m
- dual_laplacian.m
- eltopo.m
- fast_sparse.m
- fit_cubic_bezier.m
- fit_rotations_mex
- form_factor.m
- gptoolbox_mexopts
- impaste.m
- intersect_other.m
- in_element_aabb.m
- isolines.m
- mesh_boolean.m
- outer_hull.m
- point_mesh_squared_distance.m
- principal_curvature.m
- psd_project_rows
- ray_mesh_intersect.m
- readMSH
- read_mesh_from_xml.m
- reorient_facets.m
- segment_graph.m
- selfintersect.m
- signed_distance.m
- signed_distance_isosurface.m
- slim.m
- snap_rounding.m
- split_nonmanifold.m
- tetrahedralize.m
- triangulate.m
- trim_with_solid.m
- upper_envelope.m
- winding_number
- wire_mesh.m
python
quat
utility
- add_gptoolbox_tab_completion
- autohelp.m
- base64decode
- base64encode
- blue
- cache
- cache_test
- clear_class
- create_cache
- dark_mode
- dec2bin_logical
- depends
- enable_toolbox
- figgif
- figmp4
- figpng
- find_cache
- finish.m
- gold
- gptoolbox_version
- is_writable
- last_command
- NoCTranspose
- orange
- pink
- pride
- PriorityQueue
- report_mosek_error
- startup.m
- teal
- tempprefix
- turbo
- uiopen
- yaron_colormap
wrappers
external/toolbox_fast_marching
Versions that use the GitHub default branch cannot be downloaded
Version | Published | Release Notes | |
---|---|---|---|
1.1.0.0 | Logo thumbnail |
|
|
1.0.0.0 |
|
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)