Hacker News new | past | comments | ask | show | jobs | submit login
F3D is an open source 3D viewer, fast and minimalist (f3d.app)
228 points by GlowOnDub on Oct 5, 2023 | hide | past | favorite | 61 comments



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...


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.


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 :)


I recently had the problem of trying to convert STL to STEP (3D printing vs CNC), but made no progress with this. Is something like MeshLab suitable for this? If I can't find a solution I may just end up writing a tool to do the conversion for me...


You know, I had the same issue this weekend. Err... in reverse. But, I just remembered your reply and you might find this website useful : http://www.subdude-site.com/WebPages_Local/RefInfo/Computer/...


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


Yeah, we wanted to include usd support in this release but it proved very challenging. We aim for it in 2.3.


That's something that might be useful to us here too


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/


Model viewer is a nice tool! I was paid to make some assets for a model viewer website, but I couldn't get any of my model's colors to show correctly. Once I realized that AO was used as direct exposure value, it was smooth sailing ahead.

Most of the time I can't control what light my models are shown in, so it was great to have some control of how it was presented.


Is there a stereoscopic viewing option, like sketchfab.com embeds?


You are absolved of your sins :)


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


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?


Well, it's a viewer of 3D files. You have a 3D file, you double click on it, it opens, you can look around.


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.


Exactly, F3D also supports generating thumbnails!


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 :)


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).


Then download and install F3D instead :)


Macs mostly do it, unless it's STEP, nobody can reasonably open a STEP file, even scihub doesn't have the specification.


The OCCT library can read STEP pretty well, but there's nothing small or light about leveraging that ;-)


F3D rely on OCCT to open STEP and IGES file, just try it :)


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.


Windows 11 shows STEP thumbnails now.


By default ?


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.


Yeah it’s been built into macOS natively for quite some time.


Windows powertoys can preview and thumbnail STL files.


Operating systems don’t even have software (anymore) that allows looking through multiple images in a directory.


Which operating systems are you talking about? I can do that just fine in both windows and macOS without installing anything


Yes!


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 :)


Yes, the egl version should provide thumbnails!

Do not hesitate to reach out on discord or GitHub for help.


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.


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


You don’t need a log dialog for this, just a blocking display of fatal errors that occurred before the canvas loaded.


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.


No, it's a regular package and brought in a whole slew of dependencies. It doesn't appear in `snap list`. But great guess!


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.


.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.


Thanks!

We did not focus on legacy proprietary format though, but many modern formats are supported.


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.)


There is a link top right on our website


I so wish somebody will make it into a MacOS spacebar-triggered-quickview-thingy plugin…


Your mac can already do this for usd files fyi


Also for PLY and STL files.


TBH this should not be too hard for a macOS developer, since there is a C++ and python API to use.


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?


> 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.


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.


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


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.


You need to disable sip, our binary is not signed yet, sorry about that.


We will!


Kind of hard to take it seriously when it doesn't support .usd/.usdz.


We are working on it!


Will there be a WASM port?


Yes! We are working on it! Please join the discord if you want to contribute to it.


Pretty cool but a killer CPU load.


You mean the thumbnails ? Well they need to be created.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: