Nomad Change Log


measure: fix display value
refraction: fix index of refraction to work correctly depending on the scene scale
render: crop the render instead of rendering outside the screen edges
symmetry: only displays the active symmetry (when display plane is enabled)

insert: keep objects painting when using insert cloning (and saving the file)
gizmo: add back scale widgets when multiple objects are selected
gizmo: add more space between 2 axis scale and 1 axis scale
gizmo: fix manual input sometimes being ignored (matrix input)

decimation: keep quad topology on masked area
gltf: read and write cameras

interface: fix slider behavior (stuck at minimum value with infinite topological slider)
interface: fix intensity slider behavior to be faster around zero
interface: fix manual input on infinite slider



interface: fix button being wrongly selected when scrolling on left panel (e.g: insert, trim)
smudge: fix behavior when symmetry is activated
misc: fix crash when opening paint menu after adding primitive



ios: allow more memory usage for M1 iPad Pro
ios: improve drag n drop support (object file only)

primitive: fix radius icon for cylinder and tube being disabled (if lathe tool was used)
mask: fix accumulate behaviour when it is disabled
insert: allow sculpting on cloned object (if the base object is not a primitive)
project: add “Export selection only” to internal “Save as”
light: modal popup for editing parameters
layer: add extract feature
tube: fix radius being clamped (slider only)



background: fix reference image color issue



uv: improve experimental support (enable in Debug menu, unwrapper in Topology … menu)
clay: add flatten offset parameter

layer: fix extract feature (keep transform)
eyedrop: fix color issue with background
render: fix render bug when adding a point light (jaggy shadows, etc)
heightmap: improve quality of heightmap debug feature (banding)
gesture: add three finger vertial drag to edit radius
split: add front vertex option (fix mask behavior as well)
gizmo: fix rotation on primitive with non uniform scale

voxel: add sharp edges option
voxel: remesher is now using less memory and is a bit faster

primitive: fix cylinder radius handler not being positioned correctly
primitive: no transparency for mirrored mesh when using the View tool

render: use cubemap for environment instead of octahedral (less artefact on sharp background)
render: improve refraction support when depth of field is enabled

file: support multiple file loading when importing from Nomad
file: fix random crashes when importing image files
file: keep objects separate instead of merging them when loading/saving obj files



ios: fix startup crash on iOS 12 and 13

uv: collapse small edges automatically so that uv unwrap has more chance of succeeding

interface: keep dot and circle colors when sculpting
outline: fix artefacts when using outline on a mesh with hidden masked areas
trim: fix rare crash when using plane trimming
voxel: fix crash when saving a file just after a voxel remesh in certain condition
heightmap: fix color space



voxel: fix remesh



ios: fix open with feature when Nomad is not yet opened
android: import popup can now load multiple files

light: fix fourth light being ignored
render: fix rendering bug when adding a light in certain conditions
primitive: fix crash when validating mirrored box and sphere if Debug Primitive UVs is activated
insert: fix rotation interaction when the object has custom gizmo and is not centered
texture: support read-only (no editing) textures from obj (procreate) and glTF
flatten: add experimental options

file: fix crash when saving model with UVs
file: fix material library being emptied out in some rare occurence
file: fix glb loading potentially corrupted from 1.62 and 1.63



ios: fix app language not being respected in some special case
ios: add touchpad and mouse scroll support
android: add mouse scroll support
android: can now import bigger file

scene: add scene hierarchy
scene: lights and cameras exposed as scene node
scene: add instancing
scene: add Repeat nodes: mirror, radial, array, curve
scene: repeat nodes replaces the previous system for primitive mirroring, and can be used for any mesh

textures: roughness and metalness textures are correctly saved when imported from Procreate
textures: obj can export textures and mtl files if the model has previously imported textures
textures: improve specular glossiness texture support when importing glTF or glb
textures: fix colorspace when importing PNG images with gAMA 1.0 attribute
textures: use the alpha channel of the color texture as transparency
textures: unlit mode now use color and alpha textures
textures: matcap mode now use alpha and normal textures
textures: support gltf uv transform
textures: support gltf texture sampler

shadow: fix shadows being non consistent when using the perspective camera
shadow: fix artefact when a light was currently selected
shadow: add softness slider
shadow: add contact shadow
shadow: add experimental screenspace shadow as an alternative to shadowmaps (spot, directional, point)

render: allow multiselection material editing
render: add subsurface scattering material
render: add reflectance slider per material (f0 specular for non-metallic materials)
render: add experimental ssgi (screen-space global illumination)
render: less banding when rendering screenshot with transparent background
render: less banding on dark tones
render: synchronise environment exposure when switching between them
render: add a neutral tone mapping and use tweak the ACES one
render: add pixel art postprocess
render: add scanline postprocess
render: add Object-ID color shading mode

matcap: add new matcap (from blender CC0 call for content)
matcap: improve quality for a few matcaps (banding removal, jpg artefacts, etc)
matcap: keep higher quality for 16 bit matcaps (~10/11 bits precision in practice)

mask: no need to hold shortcut to trigger sharp and blurring shortcuts (simply tap on masked area)
mask: hold finger to trigger lasso masking

tool: add new tool (lasso selection)
smooth: hold to lasso select multiple objects

undo: stylus is ignored when dealing with multi-touch gesture (accidental undo)
undo: long press 2 fingers to undo continuously
redo: long press 3 fingers to redo continuously

layer: channel masking can now be used with layers (e.g. paint only roughness, etc)
layer: fix missing history recording when entering factor manual input

gizmo: fix camera-plane translation not working incorrectly
gizmo: allow value dragging in gizmo menu

transform: improve the snap feature
transform: control are now optimised with snapping in mind

matrix: if the object has skew/shear, it will be displayed in the matrix menu
matrix: no more automatic baking when using shear/skew or non uniform scale with the gizmo
matrix: note that sculpting with mirroring might not work as expected if the object has shear/skew

file: more robust triangulation if obj model has ngon
file: more robust obj loader (merge obj group if they share the same material)
file: gltf can now export layer normals and it respect smooth shaded attribute
file: gltf export unlit attribute

interface: localised in 14 languages (to keep english, go in Nomad About menu)
interface: hex color input is always in srgb (preview and internal usage for material is in linear)
interface: add key binding customization
interface: many small improvements

stroke: screen project supports pen pressure
stroke: add alpha rotation option (and option to lock brush rotation)

trim: protect masked area if flip mode is activated
preset: add reload option for tool preset
dyntopo: fix global remesh polygon distribution (if mesh was not previously in dyntopo mode)
hdr: fix hdr processing giving incorrect results on certain devices
primitive: tap on handlers for manual input
voxel: use much less memory to avoid crashes



ios: fix traditional chinese being ignored

voxel: fix voxel when remeshing multiple mesh inside a hierarchy
voxel: fix intersection mode (all objects hidden)

project: save/load custom pivot
tube: missing last division in y (lathe as well)
triplanar: two sided wasn’t forced on the planes
gizmo: auto positioned pivot if the mesh has masking
symmetry: fix crash when displaying the symmetry and deleting the last mesh on the scene
scene: long press will only move the pressed item, unless the long press occurs on the primary selected item



ios: fix traditional chinese being ignored (again…)

file: fix critical bug (crash at loading when nomad files are dropped inside the Nomad folder)

mask: mask extract now retains material and symmetry pivot
mask: fix pivot position when using extraction
mask: extraction retains UVs

interface: gizmo and transform clone/instance button can now be held
interface: offset menu panel if the side toolbar requires a second column (gizmo pivot, snap angle, etc)

voxel: fix remeshing inside hierarchy
voxel: remeshing output had sometimes the faces flipped
uv: switch from half float to quantised 16bit integer (better quality)
layer: extraction retains UVs



ios: better support with multitouch and pointer hovering (mouse, trackpad, pencil)

file: fix glTF export with skew in transform

view: hierarchy line view tool setting now respected
keyboard: fix bug with unrecognized key (scancode based)
subsurface: fix bug when a far away light is pointing away from the mesh
render: fix broken shadows
mask: extract bug when the mesh has non uniform scale or skew

texture: bake from another hires mesh (color, roughness, metalness, normal map)
texture: can import texture (material menu)

voxel: fix result when main object has non uniform scale or skew
smudge: fix behaviour when main object has non uniform scale or skew

gizmo: masking pivot now saved (and should be retained when undoing)
gizmo: smooth normals are now updated correctly using gizmo with vertex mode



files: fix obj export (textures)



file: new internal file format, .nom instead of glb.lz4 (compressed lz4), should be faster

material: fix emissive channel
material: add intensity slider for emissive channel
material: ignore alpha channel for texture preview (except for color slot)

texture: mipmap saving fixed
texture: correctly save metalness if roughness is not present (and vice-versa)

dynTopo: try to keep sharp edges intact when decimating
dynTopo: non manifold triangles should stop appearing if the surface is manifold
dynTopo: generate less intersected triangles

stroke: fix offset issue
stroke: add small falloff preview

symmetry: multiple radial now supported (/!\ use low value)
symmetry: gizmo now supports radial and multiple plane symmetry

decimation: reduce memory peak usage (can avoid crashes in some cases)
matrix: fix dynTopo, DelLayer and Layer behaviour if the object has skew or non uniform scale
curve: fix spline closed repeat curve node positioning
layer: painting could lose quality when loading/saving frequently (glb export was fine)
mask: fix potential extract crash with shell enabled and smoothness at 0
voxel: try to keep consistent flip culling parameter if the base voxelised mesh was flipped inside-out
color: vertex color are now packed with rgbm instead of rgb10 bit (less banding, especially on the dark)
triplanar: fix masking symmetry
postprocess: color grading now shows the unselected channel in the overlay widget
pressure: add smoothing average option



stroke: connected topology now considers mask as unconnected topology
delLayer: fix alpha being ignore with painting
delLayer: force non accumulate mode, which give much better alpha stability

gizmo: remove world button instead add a reset align to the pivot mode
gizmo: add pin mode (pivot stays still when you switch between objects)
curve: align feature for repeater curve
curve: add scale control for repeater curve
array: add fit option to insert objects instead of appending them

scene: when adding new lights or cameras, put them them in their own respective group
interface: fix bug when a slider is interacted while a help popup is opened
decimate: quality should be consistent no matter the mesh coordinates scale
interface: fix duplicate cancel button
gltf: fix texture not being exported correctly
baking: handle UVs outside 0-1 range
heightmap: improve render export quality when debug heightmap option is enabled



Beta can usually be tested at nomad - WebAssembly

gltf: fix export



scene: add an option to inject new node on the gizmo position
scene: scale and skew ignored when adding a node on the gizmo position

baking: fix overall quality
baking: add opacity baking (from mask data)

light: add contextual panel for faster tweaking
light: fix temperature colorspace
repeat: fix curve saving in some case
repeat: prevent gizmo and repeater widgets being both visible at the same time
primitive: prevent gizmo and viewport widgets being both visible at the same time
uv: extra viewing options
cylinder: fix radius button
box: fix density not being adjusted when scaling on 1 dimension
interface: fix left handed broken popup (gizmo angle, etc)
matcap: fix import



Beta can usually be tested at nomad - WebAssembly

stylus: fix stylus not working for light/primitive editing when stylus sculpt only option is used
spot: intensity slider was missing from contextual popup

shadow: objects with no shadow casting are now ignored from shadow map maximum range precision
shadow: adjust shadow map resolution depending on the number of shadows (min 512, max 1024)

paint: add roughness and metalness slot for stroke painting
paint: material preset can now be selected, cloned a bit more easily (for now the texture are not saved, only color rough and metalness)

uv: debug channel improvements and bug fixes
material: opacity texture now supported for refraction and subsurface, it will be used as dithering
multires: if max frame sampling is set to 0 or disabled, the mesh wasn’t render to its highest level
history: fix crash when undoing lot of operations with dynamic topology with layer operations
camera: update snap cube with more options (tap twice on the same face will flip the camera, small external rectangle will refocus the camera)



Beta can usually be tested at nomad - WebAssembly

obj: fix vertex color space selector
stroke: add randomize option
interface: split stroke options into sub menu
save: saving new file was wrongly opening a project popup
layer: fix layer being corrupted when sculpting with offset greater than one


Next release (1.77)

Beta can usually be tested at nomad - WebAssembly

primitive: popup menu with topology control
primitive: fix undo state not being recorded in some cases

randomize: symmetry supported
randomize: fix falloff for random samples

dynTopo: improve performance for global remesh
dynTopo: fix many issues with undo crashes
dynTopo: global remesh now supports non uniform scale correctly
dynTopo: reorder triangles when converting a mesh into dynTopo (better performance)

reproject: reprojection now reads color, roughness and metalness texture data
baking: texture baking now reads color, roughness, metalness, opacity and emissive texture data
material: texture transform are now synchronised by default

stroke: skip the first sculpting operation when resuming a brush stroke (snap radius on)
stroke: expose sampling radius for position and normal (Filter sub menu)

voxel: fix 64bit version (when resolution is high, usually greater than 1625)
render: fix transparent export (black border)
join: keep uv even if one of the joined object has no uvs
camera: flip the camera according to the scene center instead of the camera pivot
history: fix some undo and redos crashes
inspector: debug uv mode button renamed as inspector with a bit more control
snap: cube icon were partially rendered depending on screen size
decimate: fix crash happening with uv mesh and non uniform scale and with parts without uvs
gltf: fix some issues when loading the legacy glb.lz4 format
instance: when joining multiple instances, keep the layers synchronised
remesh: add Instant Meshes quad remesher
resources: add replace button for images resources
images: greyscale images were sometime incorrectly loaded