Commit graph

57 commits

Author SHA1 Message Date
Nexoniarz
415f8fa352 Fly camera (as in games, Unreal, Unity): right drag turns it where it stands, WASD (Q / E down, up) while held and the arrows any time move where it looks, the wheel goes forward and back (never creeping to a stop), Shift + wheel sets how fast every way of moving goes (kept), Alt + right drag orbits round what's picked; it keeps track of what it looks at (the near plane and shade in corners go by what's nearest). Close up in Rendered no longer turns into a pattern: the shade in corners reaches a share of the view (its +1 a share of the reach in the engine). The grid made again: four sets of lines, each line's look only from how far apart it and its like are on the screen (no jumps as the view moves or the steps change, no gaps, soft edges), pieces short near the eye. F3 and Escape close the command search (the engine takes Escape first). fry_hold / fry_mouse / fry_orbit target for trying it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 09:53:22 +02:00
Nexoniarz
de749dba11 Getting round: the wheel closes in on what's under the mouse (an object, the ground; the sky: on that way), the whole camera with it, so far from everything it no longer creeps at a spot in the air; arrow keys move along the ground, Page Up / Down up and down (a flat view: closer, further), Shift faster; fry_hold and fry_wheel to try them; crash dumps and a.out out of the repository and ignored
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 09:19:13 +02:00
Nexoniarz
9a7ed67d80 Smoother: dragging smoothing, rounding or the shading angle in Properties no longer stalls (the angle only re-lights it; rounded and smoothed shapes made on another thread, the newest wanted next, nothing waited on); the picking tree in the object's own space (moving it doesn't make it again; made with the shape on that thread); the grid drawn in pieces, each a pixel wide where it is and fading where its lines crowd together (no crawling towards the horizon), a hair towards the eye so it doesn't fight the ground in Rendered; the near plane further out (less flicker far off); fry_bench to time frames; app.h one declaration a line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 09:10:13 +02:00
Nexoniarz
3c819146af 0.8.0: version, README and site (what's new, three icons); the new commands in the menus too (history, select similar/loop/ring, spin, crease, slide, mirror editing, measure, workspaces, text, search), with your own keys shown; plug-in tools finger-sized on phones
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:56:51 +02:00
Nexoniarz
ad6a7c072b Select similar on whole objects too (the others of the same shape: every bolt); Shift+G was only shown, now it's a key
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:53:59 +02:00
Nexoniarz
830876a18e app.cpp split: the App class declared in app.h, what it does in app.cpp (document, files, keys, main), app_model, app_paint, app_print, app_view, app_panels, app_scripts (done by a script: the bodies moved as they were); the print check's wall thickness kept while moving; two clang warnings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:51:21 +02:00
Nexoniarz
1cda87b19a Speed: the shown shape, its model, picking tree and edges are made again only when the shape changes (a key of its points, faces and touches), not each time it's moved; big smoothed or cut shapes made on another thread (what was there stays till it's ready)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:45:35 +02:00
Nexoniarz
93c65638d8 Lighter undo: a step keeps the objects without their shapes, the shapes (points, faces, painting layout) shared with the steps where they're the same (compared, not trusted to a version)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:42:03 +02:00
Nexoniarz
9918d9a770 Fuzz test (tests/fuzz_test.cpp): random shapes through random edits and combines, broken scene and model files; in check and CI. Fixed what it found: Manifold given repeated or non-finite points (crash; the BSP takes those now), a damaged file's non-finite numbers (now 0), extruding both sides of a plane (NaN)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:38:39 +02:00
Nexoniarz
b95e436d10 Combining with Manifold (exact; closed shapes): faces come back whole, flat neighbours from the two shapes joined; the BSP still for open shapes; libraries pinned static (BUILD_SHARED_LIBS off before any); tests for touching, flush and itself
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:28:43 +02:00
Nexoniarz
5394eeb3d8 Editable cuts: Object > Cut out, editable: the cutters stay objects (see-through red), moved or changed and the hole follows; they go with what they cut when it's moved; Apply makes one or all for good; saved; exported and printed with the cut made; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:21:28 +02:00
Nexoniarz
f9ba30ab3d Make copies: along a path (the last picked: a drawn shape's outline, a line, a ring), spread evenly by length, turned as it turns (or not); fry::pathOf / alongPath; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:14:16 +02:00
Nexoniarz
b9b6932d0e Plug-in mouse tools (fry.tool{name, help, click(at, normal, object)}): listed in the Toolbox, a click in the view calls it (one undo); Stamp comes as an example; the Plug-ins window: look for one, make your own copy of one that comes with Fry3DX
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:10:24 +02:00
Nexoniarz
e0831563b7 Painting both sides (mirrored across the object's own Y, as sculpting) and a stencil (drag round an area: paint only inside it); a layer's see-through in its menu too; fry_stencil
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:06:22 +02:00
Nexoniarz
2f68430354 Reference pictures: 'only in its own view' (out of the way in 3D and the other views); saved
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:02:12 +02:00
Nexoniarz
ee7abc2b1f Drawing a shape: each line's length by the mouse; type a length and Enter for exactly that; Shift holds it to 15 degree steps
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:00:42 +02:00
Nexoniarz
ab554f277f Crease (Shift+E): picked edges stay sharp when the shape's smoothed (carried through each level and the mirror; saved); shown in magenta; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:58:43 +02:00
Nexoniarz
67866ed0fb Print: a slice preview (one layer as the printer makes it, any layer height); fry_print layer N; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:53:54 +02:00
Nexoniarz
14e35cceb1 Print: walls thinner than the least (0.8 mm, set it) shown in yellow, the thinnest told; measured once per shape and size, not each move; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:51:07 +02:00
Nexoniarz
4f32540d62 Exact sizes: Dimensions typed in Properties (keeping proportions if asked); moving snaps to points, edges' or faces' middles near the mouse; Measure in the Model tab too (command search: measure)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:47:44 +02:00
Nexoniarz
e6b3ffeda9 An empty scene says how to start (add, draw, search, pies, import)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:44:20 +02:00
Nexoniarz
e8d634f15c Dragging: the number by the mouse as it goes; type a number for exactly that much (move along an arrow, rotate, scale to a size, extrude, inset, round edges); Esc puts a slide back without leaving the shape
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:42:25 +02:00
Nexoniarz
445628b0d8 Mirror editing: a symmetric shape stays so (a point moved, its twin across X moved the mirrored way; points on the middle stay on it); in Tool options and the command search
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:40:10 +02:00
Nexoniarz
c742c937c6 Slide (Alt+G): picked points glide along their edges the way the mouse goes, click to keep, Esc to put back
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:37:32 +02:00
Nexoniarz
f5d1b79756 Repair for printing (joins loose corners, drops empty and doubled faces and inside walls, turns faces out, closes holes): a button in Print and a command; joining points by a grid (an imported STL's 100k corners: milliseconds, not minutes); tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:34:47 +02:00
Nexoniarz
1a09c17155 Spin / screw: an outline or open surface turned round X, Y or Z (its own origin or the world's), any angle, rising for a screw; tests (Pappus, cone, screw)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:51:43 +02:00
Nexoniarz
6dd7f976c3 Print size: scale by a share, halve / double, fix wrong units (in, cm, m), fit the plate; its own window too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:46:45 +02:00
Nexoniarz
f1f7a3fecc The view: near and far go by the distance (no more vanishing far out or cutting close up), a coarser grid out to the horizon; outline and lines over the model agree while a touch turns the view (worked out once, just before drawing); outlines from a cached edge list, points tried for sight only when drawn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:45:17 +02:00
Nexoniarz
c2bbafd40c 3D text (fonts' overlapping strokes joined, holes by winding), import STL / OBJ / 3MF / glTF (own DEFLATE for 3MF), sturdier face triangles; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:36:54 +02:00
Nexoniarz
ecd7c2cfda Picking and seeing through a tree of boxes per object (made again only when it changes)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:24:50 +02:00
Nexoniarz
48a9dbe918 Command search (F3 / Ctrl+Space), pie menus (Space: tools, Shift+Space: views), keys of your own, undo history, workspaces, select similar / loops / rings; (being made: the rest)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:22:38 +02:00
Nexoniarz
a79a6c9020 Phones: sideways only; back from the background the Vulkan surface is made again (it was lost), the work saved on the way out and carried on with on the next start if the phone closed it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:16:22 +02:00
Nexoniarz
c1991d9f73 0.7: cutting inside a cut no longer crashes (the boolean's tree kept splitting a sliver by its own plane, forever) and cuts come out closed (points near an edge's end set into it, small gaps filled, a nudged retry); hidden edges stay hidden on big or cut-up shapes (visibility through a screen grid, no "all seen" past a size; the selection outline too); every panel has a least size, kept when docked, and the first layout fits small windows; eye and padlock buttons in Layers; the tabs fit narrow windows; a failed tool keeps your redo; view commands at start-up no longer crash; tests v0.7.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:07:10 +02:00
Nexoniarz
ec67538be0 Mac: settings' numbers read with strtof (Apple's library has no float from_chars before macOS 26), as on Android v0.6.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 20:14:47 +02:00
Nexoniarz
707e0b62e5 README and site: plug-ins, scripts kept in the .fry, your own materials, soft selection, bridge and push
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:09:35 +02:00
Nexoniarz
3f23371eac From Blender and Maya: soft selection in shape editing (Shift+O; near points follow, the wheel while dragging sets how far), push out / pull in along normals (Alt+S), smooth points, bridge two faces with a tunnel, show only the selected (/ or Shift+H); fry_shapeop for scripts and tests; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:08:23 +02:00
Nexoniarz
3bcd50033d Scripts kept in the .fry (the Script panel lists the file's scripts: new, examples, open, duplicate, remove, rename); your own materials (Save its look as a material, kept for every file; fry.material in scripts); plug-ins: scripts in the plug-ins folder that stay loaded and add menu commands with settings (fry.command, fry.plugin), a Plug-ins window, three that come with it (stairs, scatter, more materials); a new About window; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:01:07 +02:00
Nexoniarz
ffaa5e8001 Pictures in the UI read as ImGui's colours are: an sRGB picture was turned linear and showed too dark (the logo in About, the Picture panel's paint) — a UNORM view on Vulkan, a skip-decode sampler on OpenGL 4.6 and 4.0, the texture's own setting before 3.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:01:07 +02:00
Nexoniarz
4cc6d9e043 The crash screen in the app's own look (logo with smoke, the report in a well, Open it again / Copy / Report it on GitHub); sculpt mode's panels and status bar say what sculpting does; fry_scriptpanel; twelve new previews on the site (sculpt, materials, layout, render, scripts, light and the crash screen added)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:03:18 +02:00
Nexoniarz
5d3121b335 Combining: points the cutting leaves a hair apart are one, and needles along edges go — the example gear (and others like it) came out with an edge of three faces and a face with no size, so not ready to print; a test for it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:57:13 +02:00
Nexoniarz
e18c7f6bce 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>
2026-10-20 17:38:04 +02:00
Nexoniarz
e22cd2e3e6 macOS (Apple silicon and Intel): Fry3DX.app with its content in Resources and MoltenVK in Frameworks, OpenGL 4.1 when there's no Vulkan; the program's own path, memory, OS and CPU names on a Mac; files dropped on the window (and opened from the Finder) open; presets macos-arm64/macos-x64, a CI job, tools/package.py macos makes one universal app
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:36:24 +02:00
Nexoniarz
5c28e3da4e Sculpting: the Paint tab's other side (Tab) — Raise, Puff out, Smooth, Flatten, Pinch, Grab, Ctrl the other way, Shift to smooth, the same on both sides (X); shapes are made finer first (the same shape); o:sculpt() in scripts, fry_sculpt for pictures; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:24:13 +02:00
Nexoniarz
e93ae44684 Materials shown in the view: each object's metal and rough reach the shader (Solid and Rendered); a Material picker with sixteen to start from (gold, chrome, wood, ceramic...); o.material and fry.materials() in scripts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:14:55 +02:00
Nexoniarz
87436019b3 Site: Niveus Continuity throughout — features in tabs that hand over left or right, screenshot tabs likewise, the bar's marker travelling to the section on screen, theme cross-fades; a Scripting section
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:10:53 +02:00
Nexoniarz
62afbf2b1e Scripting: Lua 5.4 with a fry library (shapes, own meshes, lathe, extrude, add/subtract/overlap, points, the look); a Script panel (F5 / Ctrl+Enter runs, one undo step, an error takes it all back), Script menu, example scripts, fry_run; tests run every example
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:07:51 +02:00
Nexoniarz
04c8985374 The website on Niveus: window-framed hero, feature cards with drawn icons, screenshot tabs, a light/dark/auto switch, downloads and build steps as cards; still all words in content.js
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:58:42 +02:00
Nexoniarz
53d8ecbfcd The Niveus look in the app: bevelled keys and inset wells (a hook in ImGui's RenderFrame), warm graphite and paper appearances made from one brand colour, Instrument Sans and JetBrains Mono; View > Appearance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:56:20 +02:00
Nexoniarz
0f059c37be A new logo: a cube frying in a cast-iron pan, on a bevelled tile; tools/branding.py makes every size
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:48:57 +02:00
Nexoniarz
a5e0d2a9eb Phone: turns with the phone (portrait layout), fullscreen, picture the right way up; tap/drag fixes for touch
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NMSrd5oe1GpUD7E6d825KP
2026-10-19 23:07:37 +02:00