concord-consortium/codap

Request: contributor docs

Opened this issue ยท 1 comments

Hi there ๐Ÿ‘‹

Prospective open source contributor here.

I'd love to learn more about how to contribute.

I work with web-based data visualization tooling for lidar, camera, and radar sensor data, and would love to know how to contribute in the future if there's ever a chance to bring some of my work into the open source educational space.

I'm hoping to find out more about how to build components or community plugins that can interface with CODAP's state management.

Some ideal examples might show:

  • how to load a 3D point cloud (it could be as simple as a spreadsheet of XYZ coordinates) into CODAP's state via the UI, where the associated state management code lives inside of the codebase, and then how to hook into the particular state context reactively inside of a new component
  • how to build a simple plugin or component that can load a set of 3D coords into CODAP's reactive state
  • what to consider if I intend to load a full lidar point cloud (1M points in 3D) into app state
  • how to load image data into CODAP in a similar fashion

Other helpful/alternative lines of inquiry to these ends might:

  • show the ideal entry point for building adapters for bridging external atomic state management libraries (like JotaiJS and NanostoresJS) with CODAP's MobX internals

Any help or insight is appreciated, thanks so much!

Hello,

I'm delighted that you're interested in contributing to the CODAP open source project. The most straightforward and immediately useful project in line with your interests would be to build a 3D visualization plugin. Though CODAP graphs can by highly "multi-dimensional," there is no support 3D point clouds.

Since you have considerable expertise in displaying point clouds in a web application, creating a CODAP plugin, which exists as an iFrame inside a CODAP document, would be a good starting point. You may have already explored the Plugin API. Using this API, a plugin can learn what datasets are present in the document and what attributes they contain. A simple UI for the plugin would allow the user to choose a dataset and three attributes for the point cloud. Drag and drop is also possible but a bit more complicated to bring about.

The codap-data-interactives github repository contains a lot of examples of plugins. The Collect Measures plugin is one I worked on recently. You could clone the codap-plugin-starter-project to get off to a fast start.

  • We're in the midst of re-implementing CODAP from scratch using more modern tools than the > 10-year-old stack on which CODAP Version 2 is built. Version 3 is coming along nicely with a React, mobx, mst, pixijs stack. Release date is not certain yet, but not before Summer, 2024.
  • Version 2 can handle 10K cases quite well, but gets sluggish after that. Version 3 is doing fine with up to 100K cases. We don't plan on pushing that much further.
  • I'm not sure what you have in mind for image data. Perhaps a description of a use case would help.

I hope this helps!