[HN Gopher] F3D is an open source 3D viewer, fast and minimalist
       ___________________________________________________________________
        
       F3D is an open source 3D viewer, fast and minimalist
        
       Author : GlowOnDub
       Score  : 194 points
       Date   : 2023-10-05 06:48 UTC (16 hours ago)
        
 (HTM) web link (f3d.app)
 (TXT) w3m dump (f3d.app)
        
       | easyThrowaway wrote:
       | Great Project.
       | 
       | In my previous (work) life it would've been incredibly useful to
       | have an editor that could open the yearly, not-backward-neither-
       | forward-compatible iterations of 3D Studio Max, AutoCAD and Maya
       | file formats. Especially when custom renders were involved. I
       | still have somewhere a 3DSMax 9/Vray file that could be opened
       | correctly only on the very same machine that wrote it.
        
         | matja wrote:
         | .max file format is intentionally hostile to developers to
         | implement it, forcing them to use the proprietary
         | library/environment. In my experience .obj (binary or ASCII) or
         | .lwo have the best interoperability.
        
         | GlowOnDub wrote:
         | Thanks!
         | 
         | We did not focus on legacy proprietary format though, but many
         | modern formats are supported.
        
       | ComputerGuru wrote:
       | It's not working for me; installed f3d 1.3.1 via the package
       | manager on Ubuntu 23.04 and when I try to open any of the STL
       | files I generated with Inventor or Fusion that I normally open
       | with/import into Cura just fine to interact with or print but all
       | I see is a blank canvas.
       | 
       | EDIT
       | 
       | Trying it from the command line and I see the problem: a message
       | is posted to stderr complaining that the file does not exist,
       | probably because this is an smb path and it (f3d) is doing some
       | weird thing trying to open the path itself instead of going
       | through the default filesystem apis.
       | 
       | Copying the file to the local fs and then opening it with f3d
       | works, so as far as I'm concerned, this is at the very least a
       | bug in that f3d doesn't forward fatal errors to the UI and only
       | posts them to stderr, which is hidden/swallowed by default when
       | opening f3d via the desktop environment or by double-clicking on
       | the .stl file (as no terminal is shown), if not to also mention a
       | bug opening files from smb or network shares or more generally
       | through the gvfs extensions.
        
         | jasonjayr wrote:
         | W/o looking -- Ubuntu, and installed from the package manager?
         | I bet that it's a snap package, and the mount namespace isn't
         | allowing access to that smb mount.
        
           | ComputerGuru wrote:
           | No, it's a regular package and brought in a whole slew of
           | dependencies. It doesn't appear in `snap list`. But great
           | guess!
        
         | GlowOnDub wrote:
         | Definitely look like a bug! Could you report it:
         | https://github.com/f3d-app/f3d/issues ?
         | 
         | Regarding the error, you are correct, we have not implemented a
         | log dialog. We plan to improve that in the future but its not a
         | small work: https://github.com/f3d-app/f3d/issues/29
        
       | spullara wrote:
       | Kind of hard to take it seriously when it doesn't support
       | .usd/.usdz.
        
         | GlowOnDub wrote:
         | We are working on it!
        
       | amelius wrote:
       | Will there be a WASM port?
        
         | [deleted]
        
         | GlowOnDub wrote:
         | Yes! We are working on it! Please join the discord if you want
         | to contribute to it.
        
       | an_aparallel wrote:
       | This is really cool - you'd think by now this is something that
       | should come with your OS, just like music and video players do :)
        
         | dagmx wrote:
         | macOS supports viewing USD, STL, Alembic, PLY, OBJ for almost a
         | decade now (some formats being newer).
         | 
         | Windows as well supports gltf in many areas.
         | 
         | iOS natively supports USDZ for the last 5-ish years.
        
         | jtvjan wrote:
         | Windows 10 came with an application to view 3D models in obj
         | and other formats, but it's no longer included in Windows 11.
         | You have to download it separately now (it's still free).
        
           | GlowOnDub wrote:
           | Then download and install F3D instead :)
        
         | RobotToaster wrote:
         | Windows powertoys can preview and thumbnail STL files.
        
         | GlowOnDub wrote:
         | Yes!
        
         | nraynaud wrote:
         | Macs mostly do it, unless it's STEP, nobody can reasonably open
         | a STEP file, even scihub doesn't have the specification.
        
           | phkahler wrote:
           | The OCCT library can read STEP pretty well, but there's
           | nothing small or light about leveraging that ;-)
        
             | [deleted]
        
             | GlowOnDub wrote:
             | F3D rely on OCCT to open STEP and IGES file, just try it :)
        
               | phkahler wrote:
               | The only other Free Software STEP reader of any
               | competence might be the one in gCAD3d. It's written in C.
               | But even if you can read STEP there is the problem of
               | triangulating trimmed NURBS surfaces. I've been wanting
               | to lift that reader and put it in Solvespace for linking
               | parts in assembly but it's a big job and we still can't
               | support all the types of geometry you might find in STEP.
        
           | DeadMouseFive wrote:
           | Windows 11 shows STEP thumbnails now.
        
             | GlowOnDub wrote:
             | By default ?
        
         | ant6n wrote:
         | Operating systems don't even have software (anymore) that
         | allows looking through multiple images in a directory.
        
           | dagmx wrote:
           | Which operating systems are you talking about? I can do that
           | just fine in both windows and macOS without installing
           | anything
        
         | smcleod wrote:
         | Yeah it's been built into macOS natively for quite some time.
        
       | DeadMouseFive wrote:
       | Pretty cool but a killer CPU load.
        
         | GlowOnDub wrote:
         | You mean the thumbnails ? Well they need to be created.
        
       | V1ndaar wrote:
       | It seems really neat! I recently received a .usdz file and was
       | hoping this would be able to work with it. Unfortunately, that's
       | not the case yet (but there's an issue about it [0]). Compiling
       | the entire OpenUSD framework was a bit of a failure here on Void
       | Linux.
       | 
       | [0]: https://github.com/f3d-app/f3d/issues/780
        
         | GlowOnDub wrote:
         | Yeah, we wanted to include usd support in this release but it
         | proved very challenging. We aim for it in 2.3.
        
           | gregoriol wrote:
           | That's something that might be useful to us here too
        
       | mentos wrote:
       | How does the performance of F3D compare to say rendering the same
       | object in Unreal Engine's static mesh viewer?
       | 
       | Could I use F3D as the rendering engine for a game?
        
         | GlowOnDub wrote:
         | > How does the performance of F3D compare to say rendering the
         | same object in Unreal Engine's static mesh viewer?
         | 
         | Hard to say since I never used UE static mesh viewer, but if
         | you test it I would apreciate a feedback!
         | 
         | > Could I use F3D as the rendering engine for a game?
         | 
         | Not really. F3D rely on VTK for rendering, which is definitely
         | not a game rendering engine.
         | 
         | That being said, you can easily render 2D sprite for your games
         | by scripting F3D.
        
       | [deleted]
        
       | bArray wrote:
       | I like F3D, but it really struggles loading large files and there
       | is no feedback to tell you it is loading.
       | 
       | It would also be cool if it offered conversions between formats
       | (as it clearly demonstrates the ability to take some file and
       | render it, it should be able to reverse that operation in most
       | cases too).
       | 
       | I never knew about the bindings, it may be cool to experiment
       | with some procedurally generated models, or using some form of
       | network model to produce 3D models. I remember from quite some
       | time ago that would procedurally generate star ships [1].
       | 
       | [1] https://blendermarket.com/products/procedural-starship-
       | space...
        
         | GlowOnDub wrote:
         | There should be a progress bar showing on the bottom, if there
         | is not, this is a bug and it would be nice of you to report it
         | :).
         | 
         | Large file can take some time but should be loaded at some
         | point, but indeed, no more feedback but the progress bar.
         | 
         | Conversions are hard because you need not only a reader, but a
         | writer too, and they should all be implemented. That being
         | said, I think it would be cool to have another project based on
         | the libf3d trying to go in this direction. It will not be in
         | F3D though.
        
         | spookie wrote:
         | Reading is one thing, making the other format use as many
         | features as the original where possible, is another. It's
         | understandable, but one always has meshlab for that :)
        
       | iFire wrote:
       | LICENSE
       | 
       | BSD 3-Clause "New" or "Revised" License
       | 
       | https://github.com/f3d-app/f3d/blob/master/LICENSE.md
       | 
       | (I had trouble finding the git repository.)
        
         | GlowOnDub wrote:
         | There is a link top right on our website
        
       | washadjeffmad wrote:
       | We've been deploying this for over a year on Fedora/Debian -
       | everyone loves it!
       | 
       | The only challenge has been with thumbnails, and it looks like we
       | should explore this:
       | https://github.com/f3d-app/f3d/issues/969#issuecomment-17032...
       | 
       | Because we generate so many assets, our preferred solution would
       | be a "3DAM/3DCMS", which there seem to be a few of now. However,
       | a 3D file manager where we can open multiple viewers / objects
       | from a higher level directory ("open folder as project") would
       | help with our open source collaborations :)
        
         | GlowOnDub wrote:
         | Yes, the egl version should provide thumbnails!
         | 
         | Do not hesitate to reach out on discord or GitHub for help.
        
       | manonthewall wrote:
       | brew version seems to be an older version, lots of command line
       | options failed to work.
       | 
       | after downloading from the web page: the macos arm download is
       | corrupted I think, x86 works fine, currently watching the orc
       | "thing" angrily stand in place.
        
         | GlowOnDub wrote:
         | The brew package probably does not contain all dependencies.
         | You will need to ask the brew packager about it.
         | 
         | You could just download the binary we distribute instead:
         | https://f3d.app/doc/user/INSTALLATION.html
        
           | manonthewall wrote:
           | You should check the arm version. On my macbook m2 air macos
           | complains that the file is broken when I try to run it;
           | x86_64 version runs fine.
        
             | GlowOnDub wrote:
             | We will!
        
             | GlowOnDub wrote:
             | You need to disable sip, our binary is not signed yet,
             | sorry about that.
        
       | GlowOnDub wrote:
       | F3D 2.2.1 just released! Open source, fast and minimalist 3D
       | viewer with full python integration and better HDRI.
       | 
       | Install with `pip install f3d` or download our binary release:
       | https://f3d.app/doc/user/INSTALLATION.html
        
         | Aachen wrote:
         | FYI, the immediate question I have when reading the headline or
         | this comment is: 3d view of ...what?
         | 
         | After clicking: When should I use this, when I'm developing 3d
         | printer software and want to preview files or so? Who is this
         | for?
        
           | nilamo wrote:
           | My gut instinct is game developers or others in the asset
           | pipeline, which have hundreds/thousands of obj, fbx, etc
           | files laying around, and 3d editors such as Blender are not
           | exactly fast to open if you just want a quick preview.
        
             | GlowOnDub wrote:
             | Exactly, F3D also supports generating thumbnails!
        
           | GlowOnDub wrote:
           | Well, it's a viewer of 3D files. You have a 3D file, you
           | double click on it, it opens, you can look around.
        
       | cdata wrote:
       | Shameless plug: if you are interested in viewing and/or embedding
       | glTF or USDZ files on the web, I worked on an HTML element for
       | that called <model-viewer>
       | 
       | "It's like <img> or <video> tag for 3D models"
       | 
       | https://modelviewer.dev/
        
         | GlowOnDub wrote:
         | You are absolved of your sins :)
        
       | jwr wrote:
       | I so wish somebody will make it into a MacOS spacebar-triggered-
       | quickview-thingy plugin...
        
         | michael-online wrote:
         | Your mac can already do this for usd files fyi
        
           | figomore wrote:
           | Also for PLY and STL files.
        
         | GlowOnDub wrote:
         | TBH this should not be too hard for a macOS developer, since
         | there is a C++ and python API to use.
        
       ___________________________________________________________________
       (page generated 2023-10-05 23:02 UTC)