Skip to content

Better caching of meshes in Meshcat #19598

@jwnimmer-tri

Description

@jwnimmer-tri

There are probably some low-hanging fruit speed ups that would improve the boot-up time when repeatedly re-running the same or similar simulations.

(1) Don't send the mesh file contents inside the websocket set object message and instead only send a URL for the mesh contents. The meshcat.cc will serve the mesh contents over http when requested.

(1b) It's a small tweak to meshcat.html or meshcat.js (can't remember which) to fetch mesh contents over http. It's the same hook as we use for loading mtl files currently, just in the opposite direction.

(2) Be smart about the http url design so that browser caching kicks in. Use a content-addressable scheme (i.e., use the sha256 as the URL, not the filename) so that the browser will cache the file indefinitely. This cuts the cost of transmitting the mesh data to near-zero (on average). All that remains is parsing in the browser.

(3) The code already has "uuid"s as discussed in the code here. Get that working (so that duplicated objects are shared), and try to ensure that the same mesh (content-addressable) has the same uuid so that reloading the scene preserves the gpu vertex buffers.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions