Giter VIP home page Giter VIP logo

3dviewer's Introduction

Qt 3DViewer

Qt 3DViewer is a compact tool for viewing 3D models in a user-friendly way.


This project is a compact and user-friendly application designed to showcase
3D models in a visually appealing manner. With support for a wide range of
file formats including .obj, .stl, .ply, .off, and .om.

Powered by Python the PyQt framework, the app use OpenGL, in combination
with ModernGL to render the 3D models and scenes in an interactive experience.
Designed and developed by Alon Rubin.

Movement:

  • Rotate: click and drag the left mouse button.
  • Pan: click and drag the right mouse button.
  • Zoom: use the mouse wheel to zoom in or out.

Watch a video demo:

Watch the series

App preview:

Alt text

How to install:

  1. Install Python 3.9
  2. Install requirements
  3. run "main.py" file

Like this project?

Check out other stuff that i make:
https://github.com/alonrubintec
https://www.artstation.com/alonzu

3dviewer's People

Contributors

alonrubintec avatar mauriziocasini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

3dviewer's Issues

Reading point clouds .ply

Hello,

Very nice app. I was wondering what I should modify to be able to read also point cloues as .ply files. I tried to open one and gave me an error.

Thanks in advance,

Bryan

OpenGL Widget Reference

Hello! Thank you for sharing this great repo!
I got a question in reading through the code.

In the UI layout the name of opengl widget is named "openGLWidget".
But in the code "openGLWidget" is never refered, a new widget "QGLControllerWidget" is created instead.

Could you please help explain this?
Thank you for your consideration!

Use with other PySide modules

Hey

I took a stab at trying to integrate your 3d viewer into a pyside6 project. I see that QGLWidget was deprecated in place of QtOpenGLWidgets, when loading a obj file into the scene it seems to hard crash with no error prints. I've narrowed it down to the moderngl vertex_array.py render() function. Although i've switched my code to use pyqt5 instead of pyside6, i'm curious if you'd know why it would crash.
Reading the documentation it notes that QOpenGLWidget turns on OpenGL-based compositing for the entire window, where as QGLWidget has a seperate native child window. But can't be sure if that's the reason why and curious if you'd know the differences.

    def render(
        self,
        mode: Optional[int] = None,
        vertices: int = -1,
        *,
        first: int = 0,
        instances: int = -1,
    ) -> None:
        """
        The render primitive (mode) must be the same as the input primitive of the GeometryShader.

        Args:
            mode (int): By default :py:data:`TRIANGLES` will be used.
            vertices (int): The number of vertices to transform.

        Keyword Args:
            first (int): The index of the first vertex to start with.
            instances (int): The number of instances.
        """
        if mode is None:
            mode = self._mode

        if self.scope:
            with self.scope:
                self.mglo.render(mode, vertices, first, instances)
        else:
            self.mglo.render(mode, vertices, first, instances) # <------------------ crashes here

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.