secondlife / secondlife/viewer

Replace Havok Convex Decomposition with Open Source Library

Open
#4,475 4 comments 0 reactions 0 assignees View on GitHub

A pull request for this has already been merged.

  • #4858 by @RyeMutt — merged
enhancement help wanted stale team:viewer
Dominant language
C++
Stars
299
Forks
146
Avg merge
1d 9h
Merged PRs (30d)
88

Description

Request for Proposal

The Second Life viewer currently depends on Havok's proprietary convex decomposition library for generating physics geometry during mesh uploads. This creates several problems:

  1. Open-source compatibility: This proprietary dependency conflicts with potential open-source initiatives and limits community contributions to the viewer
  2. Technical limitations: Newer open-source solutions offer better performance and accuracy for convex decomposition

High-Level Requirements

Replace the Havok convex decomposition module with CoACD, V-HACD or similar open-source library:

  • Evaluate CoACD and alternative libraries (e.g., V-HACD) for performance and quality
  • Implement library integration, replacing Havok decomposition dependency
  • Ensure physics data format remains compatible with server-side physics simulation

This is a viewer-only change that should not require server-side modifications, keeping scope minimal.

Additional Context

  • Would benefit from performance benchmarking of candidate libraries before selection
  • Consider creating a mesh physics test suite if one doesn't exist
  • May want to consult with major content creators during testing phase to ensure workflow compatibility


This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting /reward 100 (replace 100 with the amount).
🕵️‍♂️ If someone starts working on this issue to earn the rewards, they can comment /try to let everyone know!
🙌 And when they open the PR, they can comment /claim #4475 either in the PR description or in a PR's comment.

🪙 Also, everyone can tip any user commenting /tip 20 @bennettgoble (replace 20 with the amount, and @bennettgoble with the user to tip).

📖 If you want to learn more, check out our documentation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no source files, tests, or entry points; begin by locating the viewer's Havok convex-decomposition integration and mesh-upload physics-data path. Evaluate CoACD and V-HACD, then define completion as an open-source replacement that preserves server-compatible physics data, with performance and quality benchmarks.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.