ImPlot3D: An Extension of ImPlot for 3D Visualization #604
Replies: 1 comment 1 reply
-
@brenocq This is AMAZING! Fantastic work. I'm sure many ImPlot users will find this useful and it looks like you've done a great job staying consistent with ImGui and ImPlot's APIs. Can't wait to give it a go myself and look forward to following your progress.
On this, I'm curious if not depending on ImPlot directly was a deliberate decision or if there were limitations that made it impossible. For instance, if PS -- I've linked ImPlot3D in our README under the FAQ. Cheers! |
Beta Was this translation helpful? Give feedback.
-
👋 Introducing ImPlot3D
Hey everyone!
I’ve been using ImPlot for years now, and I absolutely love it. It’s been an incredible tool for 2D data visualization, and it has helped me so much in my projects.
Over the past few months, my need to visualize 3D data started to grow, so I decided to implement ImPlot3D. It’s heavily inspired by ImPlot (there’s a lot of copy-paste, haha) but extended to handle 3D visualizations. If you’re familiar with ImPlot, the API should feel very similar, just with an extra dimension!
ImPlot has been a huge inspiration for this project, and I wanted to share ImPlot3D with the community that has helped make ImPlot such an amazing tool. It would be amazing to get some feedback. Whether you’ve got ideas, suggestions, or just want to see what works (or breaks), I’d love to hear it!
🚀 Current Features
PlotScatter
: Plot individual 3D points.PlotLine
: Draw lines in 3D space.PlotTriangle
: Render triangles with fill support.PlotQuad
: Render quads (two triangles) for surfaces.PlotSurface
: Plot structured surfaces with X/Y grids.PlotMesh
: Display custom meshes using vertices and indices.PlotText
: Annotate your 3D plots with centered text labels.🛠️ Usage
The ImPlot3D API is designed to feel very similar to Dear ImGui and ImPlot. You start by calling
ImPlot3D::BeginPlot()
to initialize a 3D plot, followed by plotting various data using thePlotX
functions (e.g.,PlotLine()
,PlotScatter()
,PlotSurface()
). Finally, you end the plot withImPlot3D::EndPlot()
.🔗 Links
Repository: ImPlot3D on GitHub
Latest Release: v0.1
ImPlot3D is still in its early stages. I’m excited to hear your thoughts and feedback as I continue to improve it! 🚀
Beta Was this translation helpful? Give feedback.
All reactions