mirror of
https://github.com/Nexoniarz/Fry3DX.git
synced 2026-11-03 04:24:26 +00:00
0.6: README and site for sculpting, materials, scripts and the Mac app (a macOS download); features regrouped; nothing wider than a phone on a phone
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e22cd2e3e6
commit
e18c7f6bce
4 changed files with 45 additions and 14 deletions
43
README.md
43
README.md
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<h1 align="center">Fry3DX</h1>
|
||||
<p align="center"><b>Frying 3D Extreme — a 3D modeller that does what you'd expect.</b><br>
|
||||
Pick a tool, click, drag. On Windows, Linux and your phone.</p>
|
||||
Pick a tool, click, drag. On Windows, macOS, Linux and your phone.</p>
|
||||
<p align="center">
|
||||
<a href="https://nexoniarz.github.io/Fry3DX/">Website</a> ·
|
||||
<a href="https://github.com/Nexoniarz/Fry3DX/releases">Download</a> ·
|
||||
|
|
@ -28,10 +28,12 @@ From [Releases](https://github.com/Nexoniarz/Fry3DX/releases):
|
|||
| | |
|
||||
|---|---|
|
||||
| **Windows** (10 and 11, x64) | `Fry3DX-…-windows-x64.zip`: unpack, run `fry3dx.exe` |
|
||||
| **macOS** (13.3 and newer, Apple silicon and Intel) | `Fry3DX-…-macos.zip`: unzip, open `Fry3DX.app` (the first time: right-click it, Open) |
|
||||
| **Linux** (any distro from 2022 on, x64) | `Fry3DX-…-linux-x64.AppImage`: make it executable, run it. Or the `.tar.gz` |
|
||||
| **Android** (8.0 and newer, 64-bit, Vulkan) | `Fry3DX-…-android-arm64.apk`: open it on the phone to install |
|
||||
|
||||
Needs a graphics card (or phone) with Vulkan; on a PC, OpenGL 4.6 works too.
|
||||
Needs a graphics card (or phone) with Vulkan; on a PC, OpenGL 4.6 works too. On a Mac, Vulkan
|
||||
comes inside the app (MoltenVK, on Metal), and OpenGL 4.1 is the fallback.
|
||||
|
||||
## What it does
|
||||
|
||||
|
|
@ -46,6 +48,8 @@ Five tabs along the top: **Model**, **Paint**, **Layout**, **Render**, **Print**
|
|||
- **Move, turn, scale** (W, E, R): the arrows turn with the object. Scale keeps the other side
|
||||
where it is; Shift scales both sides at once. Ctrl snaps.
|
||||
- **Round, smooth, mirror** any object, changeable any time, baked in when you like.
|
||||
- **Materials**: gold, chrome, steel, wood, ceramic, rubber and more, or how metal and rough it
|
||||
is; shown in the view (Solid too), exported with it.
|
||||
|
||||
**Editing the shape** (Tab, or double-click)
|
||||
- Points, edges, faces (1, 2, 3). Extrude (X), inset (I), round edges (B), loop cut (C), knife (K),
|
||||
|
|
@ -63,6 +67,11 @@ Five tabs along the top: **Model**, **Paint**, **Layout**, **Render**, **Print**
|
|||
- **Layers** with folders inside folders, drag and drop, hide and lock whole groups, and a button
|
||||
on every row that brings the camera to it.
|
||||
|
||||
**Sculpting** (the Paint tab's other side: Tab)
|
||||
- Raise, puff out, smooth, flatten, pinch and grab the surface (1 to 6); Ctrl goes the other way,
|
||||
Shift smooths, X does the same on both sides. A shape with too few points is made finer first,
|
||||
keeping its shape.
|
||||
|
||||
**Painting**
|
||||
- Paint on the model or on its flat picture. **Paste any picture** (Ctrl+V): it goes on like a
|
||||
sticker that bends over edges and corners; Enter locks it as a layer, clicking it in the
|
||||
|
|
@ -79,9 +88,19 @@ Five tabs along the top: **Model**, **Paint**, **Layout**, **Render**, **Print**
|
|||
sizes in millimetres, checks for holes and flipped faces with buttons that fix them, overhangs
|
||||
in red, weight and filament, measuring, lay flat on a face, save 3MF or STL.
|
||||
|
||||
**Scripts** (the Script panel, F5)
|
||||
- Lua with a `fry` library: add shapes and change their settings, combine them, move points by a
|
||||
formula, sculpt, set the materials and the sun. One Ctrl+Z takes back all a script did; an error
|
||||
takes it back itself. Examples in Script > Examples; the **?** button lists every function.
|
||||
It can't reach anything outside the scene (no files, no programs).
|
||||
|
||||
**The look**: light or dark, or following the desktop (View > Appearance), in
|
||||
[Niveus](https://github.com/Nexoniarz/niveus): keys that look like keys, fields set into the panel.
|
||||
|
||||
**Files**
|
||||
- `.fry`: Fry3DX's own file, everything in one, packed small. **Autosave** in the background,
|
||||
offered back after a crash; Save / Don't save / Cancel when closing.
|
||||
offered back after a crash; Save / Don't save / Cancel when closing. Drop a `.fry`, a script or
|
||||
a picture on the window to open it.
|
||||
- **Export**: GLB, glTF, FBX (Blender, Unity, Unreal, Maya), OBJ, 3MF, STL, PLY.
|
||||
|
||||
**On a phone or tablet**: everything bigger, the side panels when you want them, a bar of big
|
||||
|
|
@ -94,8 +113,8 @@ F1 in the app lists every key.
|
|||
## Build it yourself
|
||||
|
||||
Everything it uses is downloaded while building; you need CMake 3.25+, Ninja, a C++20 compiler
|
||||
(GCC 13+, Clang 17+ or clang-cl) and glslc (from shaderc or the Vulkan SDK). On NixOS,
|
||||
`shell.nix` has it all.
|
||||
(GCC 13+, Clang 17+, Xcode 15+ or clang-cl) and glslc (from shaderc or the Vulkan SDK). On NixOS,
|
||||
`shell.nix` has it all; on a Mac, `brew install cmake ninja shaderc molten-vk`.
|
||||
|
||||
```sh
|
||||
git clone https://github.com/Nexoniarz/Fry3DX.git && cd Fry3DX
|
||||
|
|
@ -109,9 +128,10 @@ cmake --build build/debug --target check # the tests (after
|
|||
| `debug`, `release` | for working on it |
|
||||
| `portable` | a Linux build to hand out: SDL and the C++ library inside the program |
|
||||
| `windows` | Windows, cross-built from Linux with clang-cl ([how](cmake/toolchains/windows-msvc.cmake)) |
|
||||
| `macos-arm64`, `macos-x64` | `Fry3DX.app` for Apple silicon / Intel (both build on either Mac); `tools/package.py macos` joins them into one app |
|
||||
| `android` | the Android library; `android/build_apk.py` makes the APK ([how](android/build_apk.py)) |
|
||||
|
||||
`tools/package.py` packs builds into the downloads (zip, tar.gz, AppImage). Pushing a tag
|
||||
`tools/package.py` packs builds into the downloads (zip, tar.gz, AppImage, the Mac app). Pushing a tag
|
||||
`v*` makes GitHub build all of them and put them in a release (`.github/workflows/build.yml`).
|
||||
|
||||
## What's where
|
||||
|
|
@ -122,19 +142,22 @@ cmake --build build/debug --target check # the tests (after
|
|||
| `src/mesh.*`, `tools.cpp`, `cut.cpp` | polygon meshes and the edits on them (tested without a window) |
|
||||
| `src/boolean.cpp`, `modify.cpp` | combining shapes, thickness, joining flat faces |
|
||||
| `src/shapes.*` | the shape library and starter models |
|
||||
| `src/scene.*`, `package.cpp` | objects, folders, the `.fry` file |
|
||||
| `src/scene.*`, `package.cpp` | objects, folders, materials, the `.fry` file |
|
||||
| `src/sculpt.*` | the sculpting brushes |
|
||||
| `src/script.*` | scripts: Lua and the `fry` library; examples in `content/Fry3DX/scripts/` |
|
||||
| `src/export.cpp`, `print.cpp` | GLB/glTF/FBX/OBJ/3MF/STL/PLY, checks for printing |
|
||||
| `src/uv.cpp`, `sticker.cpp`, `image.cpp` | flat layouts, stickers, pictures |
|
||||
| `engine/` | window, Vulkan/OpenGL renderer, UI, files |
|
||||
| `android/`, `tools/`, `.github/` | builds and packages |
|
||||
| `docs/` | the website (GitHub Pages); its words are all in `docs/content.js` |
|
||||
| `tests/` | `mesh_test` |
|
||||
| `tests/` | `mesh_test`, `script_test` (every example script runs) |
|
||||
|
||||
## Coming
|
||||
|
||||
Sculpting, materials shown in the view, scripting; animation later.
|
||||
Animation; textures for materials (wood grain, brushed metal); dynamic detail while sculpting.
|
||||
|
||||
## Licence
|
||||
|
||||
[Apache License 2.0](LICENSE). Copyright 2026 Nexoniarz.
|
||||
Sky pictures: Poly Haven, CC0. DejaVu fonts: their own free licence (`engine/fonts/LICENSE` in builds).
|
||||
Sky pictures: Poly Haven, CC0. Fonts: Instrument Sans and JetBrains Mono (SIL Open Font
|
||||
License), DejaVu (its own free licence). Lua: MIT. MoltenVK (in the Mac app): Apache 2.0.
|
||||
|
|
|
|||
Loading…
Reference in a new issue