Skip to content

Render 3D Models of Asteroids and Comets Using SPICE Digital Shape Kernel (DSK) Data  #21

Description

@rahulranjansah

Add a visualization feature to Hapsira that renders 3D models of asteroids and comets using SPICE Digital Shape Kernel (DSK) files. This enhancement uses the Vispy library for Pythonic rendering of shape and topography data and includes a bash script to process .bds files into .obj files using dskexp for Linux systems.

💡 Feature request

Description

The Digital Shape Kernel (DSK) Subsystem provides precise shape models for bodies like asteroids and comets, which are crucial for studying surface geometry and simulating spacecraft flybys. Integrating these models into Hapsira would:

  • Enable realistic visualizations of small Solar System bodies.
  • Allow topographical detail analysis directly from SPICE kernels.
  • Provide a customizable and interactive 3D view using Pythonic syntax.

Key Features

3D Visualization with Vispy

  • Integrates the Vispy library for rendering models from .obj files derived from DSK data.
  • Supports camera interaction, lighting adjustments, and rotation for full exploration.

DSK Export Automation

  • Includes a bash script leveraging SPICE’s dskexp toolkit to convert .bds files to .obj.
  • Automates batch processing and ensures compatibility for Linux-based systems.

🎯 Goal

Why is this change important to you? How would you use it?
Rendering 3D comets in a few lines would allow other users to build on top of it. I think we can use different mission projectiles to produce visuals of how and at what point the impact or landing occurred. For example, reproducing the DART mission's point of impact on the asteroid Moonlet Dimorphos in an appealing way would be awesome.

How can it benefit other users?
Building realistic models, and studying planetary geology can explore shape models, simulate spacecraft flybys, or study projectiles and astrodynamics in general.

Progress
I've implemented it using the Vispy visualization library. Further, I have written a bash script to handle .bds files.
However, I can't decide if this would be a major feature or a small script. I would love to work with people here to make it polished and contribute.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions