Skip to main content

meshlite

A desktop 3D mesh processing application with a VSCode-inspired interface, powered by MeshLib, moderngl, and Dear ImGui.

Features

15 mesh operations with full parameter control:

Category Operations
File Open (STL / OBJ / PLY / GLB / OFF / 3MF), Save As
Repair Fill Holes, Auto Repair, Remove Duplicates
Inspect Mesh Info, Find Self-Intersections (Local + Voxel)
Mesh Edit Decimate, Remesh, Subdivide, Laplacian Smooth
Boolean Union, Intersection, Difference
Transform Translate, Rotate, Scale, Mirror

Professional UI:

  • MeshInspector-style top toolbar with grouped icon buttons
  • Activity bar + collapsible sidebar (Outliner, Operations, Search, Settings)
  • Properties panel with auto-rendered parameter widgets
  • Command palette with fuzzy search (Ctrl+Shift+P)
  • Mesh Info panel with topology, geometry, and bounding box statistics
  • Snapshot-based undo/redo (Ctrl+Z / Ctrl+Shift+Z)
  • VSCode "Dark+" theme with codicon glyphs
  • Drag-and-drop file loading (GLFW backend)
  • Recent files list (File menu + command palette)
  • Persistent user preferences (viewport, rendering, camera, history)

Architecture:

  • Adding a new operation is a single-file change — zero edits to UI, toolbar, or registry
  • 5-layer separation: domain / ops / render / app_state / ui
  • Async worker dispatch — operations run on background threads
  • 85 automated tests with architecture rule enforcement
  • Cross-platform CI (Linux, Windows, macOS)

Install

From PyPI

pip install meshlite
meshlite

From source

git clone https://github.com/syedjameel/meshlite.git
cd meshlite
uv venv --python 3.13 .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
python main.py

Keyboard Shortcuts

Shortcut Action
Ctrl+Shift+P Command palette
Ctrl+O Open mesh
Ctrl+S Save mesh as
Ctrl+Z Undo
Ctrl+Shift+Z Redo
F Frame all (fit viewport)
Drag file onto window Load mesh

User Preferences

All settings are persisted automatically between sessions:

  • Viewport: Rotate / zoom / pan sensitivity
  • Rendering: Background color, mesh color, selected color, lighting (ambient, specular)
  • Camera: Field of view
  • History: Undo depth, memory cap

Access via the Settings panel in the sidebar (gear icon in the activity bar).

Adding a New Operation

meshlite's architecture makes it trivial to add operations. Create one file:

# src/meshlite/ops/smooth/laplacian.py

@register_operation
class LaplacianSmoothOperation(Operation):
    id = "smooth.laplacian"
    label = "Laplacian Smooth"
    category = "Mesh Edit"
    schema = ParamSchema((
        Param("iterations", "int", "Iterations", default=3, min=1, max=100),
        Param("force", "float", "Force", default=0.5, min=0.01, max=1.0),
    ))

    def run(self, mesh, params, ctx):
        # ... meshlib calls ...
        return OperationResult(mesh=mesh, message="Smoothed")

The operation automatically appears in the command palette, sidebar, properties panel, and toolbar — with zero edits to any other file.

Architecture

ui  ───>  app_state  ──>  ops  ──>  domain
 |            |            |
 └─>  render ─┘            └──>  domain
Layer Responsibility Dependencies
domain/ MeshLib wrapper (mrm_shim.py), mesh data, I/O meshlib, numpy
ops/ Operations framework, registry, auto-discovery domain
render/ moderngl renderer, GPU mesh, camera, shaders domain (read-only)
app_state/ Document, CommandBus, undo, events, preferences domain, ops
ui/ ImGui panels, theme, toolbar, command palette all layers (except domain directly)

Tech Stack

Contributing

See CONTRIBUTING.md for development setup, code style, and how to add operations.

License

GPL-3.0-or-later — matches MeshLib's license.

Metadata

Release files for meshlite 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meshlite 0.3.0
File Size Uploaded Provenance Actions
meshlite-0.3.0.tar.gz 171.0 kB Without provenance Details for meshlite-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for meshlite 0.3.0
File Interpreter ABI Platform Actions
meshlite-0.3.0-py3-none-any.whl Python 3 none any Details for meshlite-0.3.0-py3-none-any.whl

Total release size: 364.1 kB

Release files / meshlite-0.3.0.tar.gz

Download URL meshlite-0.3.0.tar.gz
Size 171.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0c9c5b9cc08d19ba7f35d8f9acb37beedb4c757415432bb1a7c4904363c9b11c
BLAKE2b-256 checksum
How to use checksums
ac7d8ce29d99020b8187188a0ed611b636bfb59b8ec2a6c41857604176ec804c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.12.3 HTTPX/0.28.1

Release files / meshlite-0.3.0-py3-none-any.whl

Download URL meshlite-0.3.0-py3-none-any.whl
Size 193.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
31c38f1df646c7342a1e24a3d30ec0d77bb1c8630e30dff33027f08830bfdcec
BLAKE2b-256 checksum
How to use checksums
76ed388470ff49ee500dd530b292226658088b65f1ae9cf621cc1b4f3e5e4a03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.12.3 HTTPX/0.28.1

Security for meshlite 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page