Goxel - a fork for AoS map making

Hey everyone,

Many of you will know of Goxel, a voxel editing program that can handle AoS maps, or be used for modelling.

Late last year, while myself and Influx were mapping, I decided to fork the source code and begin making some updates to it as we encountered things we wanted to change. I had been releasing these directly into the Voxel Cartography Discord, and having made a tiny recent fix I realised that I should (A) start using GitHub’s release feature to share them, and (B) advertise it outside of our small server.

So here it is: https://github.com/GrandyB/goxel/releases

Main changes (as of 0_1h):

🆕 FPV/First person camera ('#' hotkey toggle)
Full control over it is in the Camera category; toggle button for it, with settings such as fly speed, FOV, and manually being able to set the coordinates.
Arrow keys for direction.
Page Up/Down for vertical movement.
Right (or middle mouse) click and hold for "looking" (bare in mind you can't look and move at the same time for now).
🆕 FOV setting for regular camera (separate to FOV for FPV)
🔀 Rotational camera has a higher default FOV as part of making the transition to FPV less jarring; hopefully not too much of a problem - if it is, let me know. Can alter it yourself now anyway
🆕 Importing now adds the voxels into a new layer; this new layer is named after the file
🔀 kvx no longer has bounding box on import
🆕 Colour picker in tools panel is now the full colour picker from the popup (also reminder that holding CTRL while using a block adding tool briefly toggles to the colour picker for easy access!)
🛠️ Colour picker correctly steals mouse inputs, thus no longer draws underneath its popup while picking
🔀 Heightmap and colourmaps now export using .bmp, so they can be fed right into "bildramer's heightmap converter" (still need to specify .bmp in the file name)
🆕 Width/height/depth of brush
🆕 Added hotkey settings for brush modes (add/sub/paint are U/I/O) and planes (<> for move it up/down, / for visibility). Can change in settings.
🆕 Height/colourmap export (file > export)
🔀 Layer pane display always visible on the right
🛠️ ByteBit's AoS .vxl file fix

Can find me in the Voxel Cartography Discord - I will check here a bit but it’s easier to reach me there or in aloha’s aos-mapmaking channel. I doubt I’ll put much more time into it (only came on to fix a tiny issue with it, previous update was last December). Hopefully it’ll be useful to some of you mappers out there.

8 Likes

Half a year or so passes!
Two weeks ago I re-setup my dev environment for goxel and continued with more wishlist items we put together. I’ve now put out two versions that I’d love to get into more hands and test more thoroughly.

Here’s the major headlines…

Goxel 13

My fork was wildly out of date compared to the main branch, so it was long since time to bring the latest and greatest into my fork.

New changes coming in from Goxel 13 include:

  • New UI - imgui was updated to the latest, and a new UI was added
  • Rect Select (tool) - can select based on screen coordinates rather than a selection box; click and drag = a selection
  • Rotation around an origin (part of move tool) - rotating is now around a definable origin rather than an arbitrary middle-of-map origin, making rotations far more user friendly
  • .gox import - adds its layers into the current working file
  • Camera angle quick select - the new ‘cube’ in the upper right can be clicked to move the camera to various preset angles for the top/side/diagonals

Colour inherit brush settings

Inside the brush/shape tool, you have an extra bar in the ‘color’ section:

  • User = use the user selected colour from the GUI
  • Inherit = ignore the user selected colour, and instead take the nearest colour beneath the cursor
  • Add = add the user colour to the inherited colour
  • Mid = find the midpoint between the user selected colour and the inherited colour

Doodad placer tool

Import an external file (kvx/kv6/text at the moment), it’ll show a preview you can manipulate, click to add it into the current layer!

Previously you’d either have to use VOXED for this, or File > Import > [format] > (imports to new layer) > (move tool it into position) > (merge down if wanted)… which was a painful user experience. Now all that is done in one click.

It also has a history section filled with buttons representing files imported during this session, for quick access:

Non 90-degree rotations

Previously, you’d have to use an external tool like Magicavoxel to do this; now it can be done in goxel!

  • Move tool’s rotations are still 90 deg, as that is non-destructive in nature
  • Move tool has a new “Rotation (Destructive)” menu, with ‘Degrees X’/Y/Z and an apply button. Provide an angle in degrees, press apply and it’ll rotate the current layer that much (or at least try!). Can undo if necessary, and is a destructive operation as non-90 deg rotations are by nature destructive at low voxel resolutions
  • Doodad placer tool’s rotation buttons rotates by 12.5 degrees each button press. This is not destructive as it is a temporary volume that is cached and only “exists” once you click to place

Other features

  • Select layer of block under cursor hotkey - hover over a voxel and press the apostrophe ’ key (configurable in settings). This will switch your ‘active’ layer to be the layer that voxel belongs to
  • Selection tool shift to move - when using the selection tool, you manipulate a box to create a selection area. There’s two modes to it - RESIZE and MOVE that were inside a combo box. This is still available, but holding the shift key will temporarily switch you to MOVE, allowing you to move your bounding box rather than resize it in an easier way than having to use the combo
  • Selection tool ‘select entire layer’ button - quick way to select the entire layer content
  • App default tweaks - shadows disabled, blocks not so shiny and grid opacity reduced by default. Disabling shadows should help performance

As always, all new features are released on the fork’s github release page, and all new features are being tracked on the github project page and inspired by (and dev progress documented in) the Voxel Cartography Discord.

2 Likes

Impressive! Love the doodad placer and a bit mind-blown by the non-90 degree rotation option; it seems to work incredibly well!

Excellent editor, I’m already using it.
Of the minuses, I have not yet understood how to easily create complex terrain of earthly hills. I simply draw lines around the areas and move them up one level. The line maker is a bad tool, it misses random blocks of the line being drawn. It definitely needs to be fixed. And secondly, I wanted to have a custom palette, otherwise it’s not convenient to constantly click with an eyedropper.

Complex terrain is always a tricky one! Using colour alpha and the painting tool in goxel is an option but you may need to chop your terrain layer into several smaller ones in order to keep it performant.

The other option is to export your terrain as a heightmap, create a colourmap in your favourite image editor as a bmp, and then re-combine them into a vxl using Bildramer’s tool. Image editors have great tools for creating textures and such, so that’s the most versatile option.

Line maker - interesting. I’ll play about and see.
I’d definitely try using the brush with ‘1’ for the Z height, and then potentially trying out the ‘plane’ tool. The ‘/’ hotkey will enable the plane and ‘<’ and ‘>’ will raise/lower it. You can then change the snapping settings on the brush settings to make you only snap onto the plane and not the mesh. Makes building up terrain layer by layer much easier.

As for colour palettes, it looks like you can import colour palettes from gimp, but there are palettes built into the editor as well, the palette icon on the left has a dropdown, maybe one of those can help. If you’re in the brush tool, you can hold CTRL to temporarily switch to colour picker and click to grab. Can also hold SHIFT and the brush becomes a line tool temporarily as well. Perhaps those two will help.

New release.

v0_2e

  • :tools: Placer tool - now has correct origin and doesn’t clip the importer volume; all fixed in theory
  • :twisted_rightwards_arrows: FPV camera - default speed 10 → 50, but is overall slower than before (and control over it more fine grained as result)
  • :twisted_rightwards_arrows: Move tool - destructive rotation can now accept negatives (range is now -360 to 360)
  • :twisted_rightwards_arrows: All number related inputs reverted to using arrows every time

https://github.com/GrandyB/goxel/releases/tag/v0_2e

And another one 0_2f

  • :new: Placer tool - if there is a selection made, “Acquire selection” button appears and can copy the selection into the placer
  • :new: Image tab - “Crop to visible & reset origin” button - uses only the visible layers, crops to it, and resets the origin

https://github.com/GrandyB/goxel/releases/tag/v0_2f

0_2g

  • :new: Placer and Selection tool - both now have “Copy to placer” and “Move via placer” buttons after a selection has been made.

“Copy to placer” keeps the original voxels and selection box in place.
“Move via placer” copies the blocks within the selection, then wipes the selection and its box, ready to be placed elsewhere any number of times by the placer.

https://github.com/GrandyB/goxel/releases/tag/v0_2g

This change effectively provides a “move selection” mechanic, which has been saught after for a long time. Also means if you create something in one part of the map, you don’t necessarily need to export and reimport in order to use it in other places - can just copy the selection while keeping the original in place.

0_2i just released
BIG UPDATE.

:tools: Massive performance gains for brushes (placing/painting etc) on large volumes thanks to some investigation and intervention by the original creator of goxel through an issue on the original repo (https://github.com/guillaumechereau/goxel/issues/414)
:new: Snap panel is now docked to top when a tool uses snapping
:new: Placer tool now displays the rotation in each angle in degrees and there’s a reset button

Also includes all the stuff from the 0_2h pre-releases:

:new: Noise! The colour panel now includes noise with some parameters. Works with painting and placement
:new: “Reset” button in fuzzy select that removes selection, and renamed “Clear” to “Delete blocks” for clarity. Moved this button too
:tools: Magica voxel format correctly appears in the menus again
:twisted_rightwards_arrows: Layers pane re-pinned to right
:new: Bundled a bunch of scripts I had posted in ⁠Goxel Scripts into the application by default
:new: Import > colormap (applies to current layer, all the way down z)
:new: Import > hmap + cmap (select two bmps one after another, aka the bildramer program)

DOWNLOAD HERE: Release 0_2i · GrandyB/goxel · GitHub

Performance difference:


Noise brush:

Heightmap + Colormap = bildramer’s program, now within Goxel:

1 Like

0_2j

  • :tools: Placer fix - I broke it with 0_2i’s changes to show the rotation in the placer, can now successfully open it

  • :twisted_rightwards_arrows: Camera speed defaults to something far lower, and the near clip plane is 10x smaller (meaning you don’t see ugly terrain clipping when in confined spaces)

  • :twisted_rightwards_arrows: More tools show the ‘snap on’ menu at the top (extrude and selection, as both use snap)

  • :twisted_rightwards_arrows: “Alpha” component of colours is no longer 0 - 1 with 0.1 increments, but changed to “Opacity %” with 0-100 in integer increments and have fixed rounding. This means the thing no longer gets stuck and it’s more fine-grained

  • :new: Plane tool now has the grid color picker and the reworked “Opacity %” hooked into it so that it’s easier to alter the plane’s color/opacity

  • :new: FPS is now displayed in a fixed position in the bottom left, which might help show if/when performance dips

https://github.com/GrandyB/goxel/releases/tag/v0_2j

0_2k

  • :new: Filters! Goxel main branch introduced floating windows known as “filters” which are like scripts, but can have a UI and are made internally with C rather than being very limited Javascript:
    • :twisted_rightwards_arrows: “Colors - H/S/L/C for layer” = change hue/lightness/saturation/contrast of the current layer (from main repo)
    • :twisted_rightwards_arrows: “Translation - Mirror” = a more advanced flip, can be of the entire map or of the current layer (from main repo)
    • :twisted_rightwards_arrows: “Translation - Wrap” = shove the current layer across image boundaries and let it wrap across (from main repo)
    • :new: “Bulk - Fill upwards by color” = goes from map bottom, filling with voxels until it reaches a block (useful for large .obj imported pieces)
    • :new: “Bulk - Remove by color” = removes all blocks from layer of specific color (useful for removing vxl default blocks)
  • :put_litter_in_its_place: Scripts - have binned all of my previously made scripts as they are no longer needed and are now filters!
  • :new: Layers have marker colours - highlight various layers by changing their marker!
  • :twisted_rightwards_arrows: Layers panel entries now 30% shorter, e.g. can fit 31 rather than 22 layers in view on a 1080p screen
  • :twisted_rightwards_arrows: Ambient light defaulted to 1.0 (from 0.3)
  • :twisted_rightwards_arrows: Occlusion defaulted to 0.6 (from 0.4)
  • :twisted_rightwards_arrows: Clone layers don’t immediately update on change if they’re hidden; and gets the copy when showing again


0_2l

  • :hammer_and_wrench: Linux/mac builds auto generating (@utf-4096), and the debug build working on linux again, which will come in handy
  • :new: Filter - “Transform - Squash”, condense layer heights by a %
  • :new: Filter - “Generation - Genland”, borrowing from Tom Dobrowolski’s generation code and Ken Silverman’s noise and other pieces. Many configurable options available in here (with more likely to come) - with thanks to @utf-4096 for the seed/wipe layer options
  • :new: Filter - “Generation - Doodad placement” analyses heights of terrain/image, and with a list of doodads imported into the filter, can randomly place these around on the currently active layer. Forests in a click!
  • :new: Export panel - (@utf-4096) long unused/unloved, but it now remembers where you exported last and can re-export there with one click! Information on how this can be auto-reloaded into a live Ace of Spades server can be found in a guide on our discord.
  • :new: “Export” > “gox (visible layers only)” - as described - doesn’t include hidden layers in the export, very useful if collaboratively working on a map!
  • :twisted_rightwards_arrows: Placer tool - ‘Flip’ options added
  • :twisted_rightwards_arrows: Brush line tool
    • :new: When using shift to toggle to line mode, it displays the distance in x/y/z from start to end point inside the help text in the top bar
    • :new: Holding alt during this will lock the Z level of the line (may change a bit in future)

0_2m

Non-windows builds are now broken, only the exe shall be released.

  • :new: Filter - “Simple Shadows”, which just does a straight-down shadow of objects from other visible layers, onto the current layer
  • :new: Filter - “Coords”, which spits out coords of the selection box into the console
  • :twisted_rightwards_arrows: Default PTZ camera updated so that the orbit pivot is the block you have under the cursor at the start of rotation, rather than an arbitrary distance away with thanks to tatelax More natural feeling camera orbit by tatelax · Pull Request #439 · guillaumechereau/goxel · GitHub
  • :new: Placer can now export its content to a file
  • :twisted_rightwards_arrows: Some actions now contribute to the history undo/redo when they didn’t before (various fuzzy selection actions for the mostpart)
  • :new: Fuzzy select now has an “Entire layer” checkbox which switches out the default neighbour-based selection with a check across the entire of the current layer
  • :new: Fuzzy select’s “fill” option now respects the noise settings
  • :twisted_rightwards_arrows: Label size push/pop for more control over label width (should help when making/updating popups)
  • :twisted_rightwards_arrows: Windows build updates thanks to NexusKorthos https://github.com/guillaumechereau/goxel/pull/449

https://github.com/GrandyB/goxel/releases/tag/v0_2m

0_2n

Huge release, made possible by Cursor.

:new: Camera - new type that emulates a player, with gravity and collisions. Move (WASD), jump (space), crouch (ctrl), noclip fly state (hold alt)
:new: Fill tool - uses current colour settings to floodfill an area. Best used in conjunction with plane snapping
:new: Palette - completely reworked; can add/remove palettes, add/remove colours to/from palettes, globally saved
:new: “Palette - usage from layers” filter - can acquire colours from the map into your palette
:new: Colour history bar - each time a colour is used/picked, it is added to a 20 colour history at the top of the screen next to the snap settings. It remembers the noise settings used too. Persisted into the .gox file. Right click on a colour in the bar to remove it
:new: Placer - richer history UI (preview of model, floating panel, sorting, remove entries etc), and is persisted as part of .gox
:new: Placer - per-place random rotation/flip settings to add variation on each placement
:new: Placer - configurable colour replacement (random or fixed) - bit like greenscreen, replace a provided colour with something that changes each placement, great for repeated map objects
:twisted_rightwards_arrows: Placer - import model dialog is now a multi-file dialog
:new: Brush - Added “Origin at base” checkbox will shift the origin of the operation so that it starts at the cursor and goes upwards rather than both up and down centrally
:twisted_rightwards_arrows: Colours - noise texture scaled up (512 vs old 16-block tiling) for less repetitive noise
:hammer_and_wrench: Layers - new / duplicate layers insert under the current layer; layer add/remove keeps selection sensible
:hammer_and_wrench: Layers - delete no longer triggers on hitting ‘d’, history correctly updated before delete so you can undo
:hammer_and_wrench: Camera - FPV: movement no longer stalls during mouselook
:wastebasket: Line tool - removed; hold shift during brushes instead





2 Likes

0_2o

  • :new: Box select > Move selection - once a box is drawn, hold alt and drag a face to move the contents of the box
  • :new: Filters > Generation - Terrain Coloring. This will take the blocks on your current layer and apply a genland-esque coloring/lighting solution to it, with lots of parameters for you to experiment with
  • :new: View > Wrap, this creates a temporary visual of how your image ‘wraps’ at the edges by creating a temporary/point-in-time clone of it and placing 8 of them at each border/corner to show how edges blend with each other. Untick and retick ‘wrap’ box to re-acquire latest blocks
  • :new: Layer > Opacity - control how opaque a layer is when visible
  • :new: Layer > Volume snap - turning this off allows you to see the layer but exclude it from ‘volume’ based snapping (espcially useful when twinned with opacity)
  • :new: Placer > Scaling - so you can shrink/expand the size of objects easily before placing
  • :new: F11 to toggle fullscreen
  • :new: Export as > Kv6
  • :new: Brush/Shape - using **ctrl+**shift for color picking retains alpha of previous color
  • :new: Image > Crop to image box
  • :new: Filters > Translation - Rotate. Clockwise/anti-clockwise 90 degree bulk rotation of all layers
  • :twisted_rightwards_arrows: Extrude now honours noise settings so that extruded blocks can be noisy
  • :twisted_rightwards_arrows: Open recent now opens the most recently edited file on load of program
  • :tools: Fuzzy selection > Fill - it used to sometimes fill with white regardless of what color you had selected
  • :tools: Filters > Simple shadows - had broken with some recent changes, now works again
  • :tools: [various filters like wrap/translate] - fix performance issues that arose after the operation finished (they can still be quite slow to actually perform)

https://github.com/GrandyB/goxel/releases/tag/v0_2o



1 Like

There has been many updates.
2p, 2q, 2r, 2s, 3a, 3b, 3c, 3d, 3e, 3f - with ~140 distinct patchnote entries!

A few highlights:

  • Major UI overhaul - left bar has been ripped out and put into other places; “Image” wide and “Layer” wide operations moved into dedicated menus up top, tools/layers/palette/imagebox have dedicated show/hide buttons in the top right, most other windows are still openable via ‘View’ menu
  • Nested layers - you can now have parent-child relationships between layers! Group things, move groups, show/hide groups etc
  • Brush & painting toolkit — clone stamp, texture/palette modes, surface paint (ignores heights), dithering, smoothing (2D/3D/paint), auto-plane the brush, better fill/extrude options
  • Procedural map filters - biomes, buildings, hedges/roads, water layer, imprint, explosions, noise/reduce-colors, sun shadows, layer split based on non-connected structures
  • Selection & transform workflow - fuzzy hollow/expand-shrink, mutually exclusive selects, box export, image/layer translate, scale/mirror options
  • Performance & game export - wrap-preview is one-shot (doesn’t affect performance anymore), brush/voxel speedups, Trenchblocks .vox + metadata, MagicaVoxel >256 split, recent-files reliability

3f is the latest and can be found here

Full patchnotes (brace yourself)

0_3f

  • :new: “Reset current selection” button at top of tool panel when a selection is active for easier deselect
  • :twisted_rightwards_arrows: Box select, fuzzy select and rect select cannot co-exist anymore, it resets other selections before selecting
  • :twisted_rightwards_arrows: Palette upgrades:
    • “Replace” colour button to move current colour into a position
    • Move buttons for the currently selected colour in the palette
    • Allow duplicate colours in palette
    • Highlight all palette colours that match the brush colour
    • “Are you sure?” confirmation for Clear all colours
    • Right-click tool-panel swatches in palette mode to remove them
    • In-use colours palette re-calcs when switching to it
    • Clicking a palette colour (or picking a colour) turns off block colour inheritance
    • Ctrl+click colour picking exits brush palette mode
  • :new: Image/Layer > Translate - move all blocks (within a layer or whole image) by an amount
  • :new: Filters > Utilities > Color average - select some colours and it’ll give you in-between colors
  • :twisted_rightwards_arrows: View > Grid - yes/no replaced with grid strength; grid colour auto white/black from block lightness and renamed existing “Grid color” to “Plane color”
  • :twisted_rightwards_arrows: Colour picking via Ctrl+Click now works when within most tools
  • :twisted_rightwards_arrows: Fill tool - can use texture/palette options
  • :twisted_rightwards_arrows: Saved files added to recent / most recent
  • :twisted_rightwards_arrows: Surface paint on explicitly turns off block face align / origin at base / auto-plane
  • :twisted_rightwards_arrows: Default background colour set to sky-like #939E9EFF
  • :twisted_rightwards_arrows: Palette / reduce_colors analysis uses visible layers only
  • :twisted_rightwards_arrows: Ctrl+click exits brush palette mode
  • :twisted_rightwards_arrows: Dithering seed reset on new brush strokes
  • :hammer_and_wrench: Fix palette overflow and new palette colours now correctly get their RGB tooltips
  • :hammer_and_wrench: Fix segfault when a group is selected during placer operation
  • :hammer_and_wrench: Fix fuzzy select mask mode buttons not reflecting the initial mode it’s in

0_3e

  • :new: Plan > Imprint filter - place blocks somewhere above the map, and choose a layer to “imprint” those block into; useful to create trenches, as you can place e.g. 3-high, 3-wide trenches in the sky on a plane, and then have it nicely apply onto non-flat terrain underneath
  • :new: Image/Layer > Noise - apply noise uniformly across an entire layer or entire image
  • :new: Image/Layer > Reduce colors - use a couple of forms of quantization to reduce the number of colours used
  • :twisted_rightwards_arrows: Where there used to be “In new layer” and “Replace current layer” (with the former creating a child if a layer was already selected), there’s now three options - “New layer”, “New child”, “Replace current” so that it’s more explicit
  • :twisted_rightwards_arrows: Camera > Player mode - the bottom of the image box is now a walkable surface
  • :twisted_rightwards_arrows: View > Wrap Preview wipes on new map load
  • :twisted_rightwards_arrows: Fuzzy select now forces volume snapping (previously it used whatever you had but only volume snap makes sense for fuzzy select)
  • :twisted_rightwards_arrows: Attempting to open an already opened filter will centre it rather than close it
  • :twisted_rightwards_arrows: Recent files are now ordered based on opening files rather than saving them
  • :hammer_and_wrench: Fix recent file load failure
  • :hammer_and_wrench: Fix (some) imgui id warnings
  • :hammer_and_wrench: vox (trenchblocks) now works correctly with non standard sized maps, uses an updated vox format, the 3D point/zone in the metadata now correctly positions the zones rather than using the top z block like 2D points/zones do, and can now place these spawn areas on empty columns

0_3d

  • :new: Plan > Explosions - destructively simulate explosions from a target plan layer (with dots/shapes for where to put them) onto a chosen terrain/other layer
  • :new: Cameras > Smoothing - enable input smoothing for mouse and keyboard controls for nicer flythroughs
  • :new: Cameras > Fly cam - holding right ctrl will lock your Z level, allowing you to look down while not moving down (this is also smoothed by the setting mentioned above)
  • :new: Smoothing tool “paint mode” - more changes to be made here, but a rudimentary colour smoother when you are in ‘paint’ mode rather than add/subtract
  • :new: Smoothing tool “3d mode” - to compliment 2d mode, 3d mode restricts changes vertically, allowing to smooth tunnel floors/ceilings
  • :twisted_rightwards_arrows: Smoothing tool now handles empty columns with either a cutoff or by inventing voxel shapes in the void
  • :twisted_rightwards_arrows: Move tool - scale controls per axis have been copied from the placer to here
  • :twisted_rightwards_arrows: Genland filter will keep its parameters between close/opens of the window
  • :twisted_rightwards_arrows: Previously, any voxel with <127 alpha was not rendered, it is now rendered - should be clearer
  • :rocket: View > Wrap preview - this now creates a one-shot mesh of the current image, resulting in far better performance
  • :hammer_and_wrench: Placer multi import now previews all files correctly and doesn’t weirdly merge them into one volume
  • :hammer_and_wrench: Imgui error beneath last layer if it was a parent to other layers
  • :hammer_and_wrench: Fix filter windows appearing strangely offscreen - they will now restore in screen centre
  • :hammer_and_wrench: Fix Water Layer fiter’s colour bleed setting post-layers-update

0_3c

  • :new: “In-use colors” palette - populates based on colors present in the entire image (regardless of layer)
  • :new: “Palette” brush mode - shift+click on palette colours puts the brush in this mode, which allows you to multi-select colours, at which point the brush randomly applies those colours
  • :new: “Reduce colors” filter - in Image/Layer menus, reduces the color count by quantization
  • :new: Effects > Generate > Biomes - Triplefox’s random map generator that was part of pyspades, ported with his blessing
  • :new: Fuzzy select now has “Hollow” - select a filled shape, and hollow it out by deleting innards
  • :twisted_rightwards_arrows: Fuzzy select’s “Expand selection” is now “Expand/shrink selection”, shrink will reduce the selection mask inwards
  • :twisted_rightwards_arrows: Genland - ‘river meander’ parameter added
  • :twisted_rightwards_arrows: “Merge layer down” in the layers panel has an updated icon
  • :hammer_and_wrench: Trenchblocks vox - fix duplicate colours appearing in palette
  • :hammer_and_wrench: “Export as” in box select was not working
  • :hammer_and_wrench: Correct options available for “Import as” and “Export as” in box select and placer
  • :hammer_and_wrench: Fix crash for having no layer selected re: fuzzy select/rect select

0_3b

  • :new: Smooth tool - averages surroundings and can introduce some noise while doing so
  • :new: Trenchblocks game-specific .vox export - uses values from the Trenchblocks metadata we already have, to add the required blocks, this is likely to shift/change as time goes on
  • :new: Metadata versioning - should be able to re-seed the metadata templates based on Goxel version, so if you do want to make changes to metadata templates in your appdata files, make a differently named copy first

0_3a

Time for a major release! 0_2s → 0_3a.

This update radically alters the UI and layer functionality within Goxel, adding a new cursor/pointer tool for selecting layers, moving items into menus, several new buttons and options, and the ability to nest layers.

As this is a radical change, it would be advised to make backups of ongoing map files and to save often/to versioned files; please report any issues to me!

  • :new: Layer nesting - “it’s turtles all the way down!”
    • You can now group layers, move as a group, show/hide as a group, focus a group…
    • “Focus” functionality, which solo’s that layer without touching overall visibility settings, Shift+Focus button also moves your viewport to the layer; the TAB and Shift+TAB hotkeys are added to perform this too
  • :twisted_rightwards_arrows: Arrow keys no longer rotate the viewport, they instead allow navigation up/down layers and expand/collapse layers
  • :new: Cursor tool - see unlocked layers as selectable objects, move them around easily, deselect all layers by clicking into space
  • :twisted_rightwards_arrows: UI shuffle - a lot of things have moved!
    • “Filters” are now mostly under the “Effects” menu
    • “View” menu has far more options, and replaces the now removed left bar
    • “Image” and “Layer” menus acquire some old filter functionality
    • Layers panel can be resized and is docked better, main viewport now only renders up to the left edge of it
    • Ability to show/hide all UI, and view cube/camera preset buttons
  • :new: Brush > Auto-plane - on start of drag, a plane is made based on the direction of the face of the block
  • :new: Effects > Utils > Layer splitting - use floodfills to separate your current layer (or entire image) into many child layers with parents as a starting point
  • :new: Effects > Generate > Buildings - use a flat plan of coloured filled rectangles to place the basics of buildings with windows, rooms/floors and a roof!
  • :new: Effects > Lighting > Shadow from sun - we already have a completely vertical shadow tool, well now we have an angular one! Borrowing from work done on shadows in the terrain coloring effect
  • :new: Image box show/hide is remembered between sessions (more to come)
  • :twisted_rightwards_arrows: Layer selection from cursor (apostrophe) functionality is now on release of ’ rather than on key press; while holding ’ you see a highlight of the bounding box of layers in the main view to make selection easier
  • :twisted_rightwards_arrows: Metadata - added world-space labels, and now correctly seeds the userdata folder with the two initial templates
  • :twisted_rightwards_arrows: Fill tool - can now also paint blocks in 3d via floodfill like regular paint buckets do in image editors
  • :twisted_rightwards_arrows: Copy as new layer - in various places where cut was the only option previously (box/rect/fuzzy select)
  • :hammer_and_wrench: Terrain coloring should only paint voxels, in a few cases it was adding some
  • :hammer_and_wrench: Layer selection from cursor (apostrophe) struggles to acquire the correct layer have been resolved
  • :hammer_and_wrench: GitHub builds for win/linux/osx are fixed thanks to @mgerhardy
  • :rocket: Various brush/inherit brush performance improvements, especially in light of having many more layers than we had before; more to be done here

0_2s

  • :new: “Clone stamp” tool - use colouring from one part of your map, in another like a brush; hold ctrl click to set source, then brush away! Wall mode allows you to copy sideways as opposed to vertically
  • :new: Brush “texture mode” - use textures as the paint! Can add your own in the appdata folder for it
  • :new: Filters > “Plan - Hedges” - takes blocks on your current layer and creates a ‘hedges’ new layer with some random variation
  • :new: Filters > “Plan - Roads” - similar to above but creates a road on a new layer
  • :new: Filters > “Generation - Water layer” - creates a 1 block high water like texture at the bottom of your map; some presets given. If you have a base layer of terrain coloured how you want, use colour bleed to add a bit of a transition between water and land
  • :new: Camera preset buttons - always visible in top right, has the three modes we’re used to + a “top down” one which toggles to orthographic and places you above your map
  • :twisted_rightwards_arrows: Brush “Block face align” - when enabled, the ‘z’ of the brush is facing you, making especially wall painting easier
  • :new: Brush “Surface paint” - ignores Z of brush and instead paints solely based on X/Y and affects voxels exposed to the sky that it finds
  • :rocket: Extrude tool - should now be faster!
  • :new: Extrude tool “Color threshold” - can extrude based on colours of the surface rather than the entire surface
  • :new: Extrude tool “Color inheritance” - extruding through blocks of another colour can optionally acquire the colour they passed through
  • :twisted_rightwards_arrows: [ and ] hotkeys - used to affect brush X/Y/Z size; now only affects X/Y, but holding shift will affect all three
  • :twisted_rightwards_arrows: Filters > “Generation - Genland” - some parameters have been simplified/removed, and height will cap at image box height rather than doing a weird type of wrapping vertically
  • :twisted_rightwards_arrows: Fuzzy select tool - now has the option to “expand selection” by a distance in all directions
  • :twisted_rightwards_arrows: Camera fly/player modes - ‘speed’ no longer shared, each have their own setting
  • :hammer_and_wrench: Lines - various fixes to line drawing (holding shift while in the brush)
  • :hammer_and_wrench: Float field dragging - last patch I mentioned a fix for 1dp, well now there’s a fix for 2dp as well
  • :hammer_and_wrench: Camera mode switching - going between fly and orbit used to move the camera backwards a lot, now stays in place correctly
  • :hammer_and_wrench: Camera orbit mode - correctly rotates on right click, had some strange offset
  • :new:"Surface mode" added to clone stamp tool
  • :new: Plan hedges/roads filter - given ‘exact placement’ checkbox; before this (exact placement: enabled), the position of the blocks on your current layer are directly used as where to generate the hedges/roads. Exact placement disabled, it looks at the x/y of the blocks in your layer, and go from max z down to the chosen layer, and then act on that. TLDR; Draw your plans on planes above the map! Now the plans don’t necessarily need updating if you alter the terrain shape beneath, as it’ll just use the top Z

0_2r

  • :rocket: Several performance improvements, the biggest of which comes from how the brush size affects the number of voxel operations. Try out the things that used to feel laggy to you with brushes and tell me if they still are!
  • :new: Filter > “Utility - .vxl color permeation” - helpful when wanting to subtract from terrain imported by .vxl - what it does is bit hard to describe, see below
  • :new: Filter > “Translation - Mirror” - used to only mirror the entire layer, now has extra options for just mirroring one map half onto the other in x/y/z directions
  • :new: Brush “dithering” - extends outwards from brush shape in a random pattern as a form of frosted glass/dithering type effect, useful for painting terrain
  • :twisted_rightwards_arrows: Brush antialias - changed from a checkbox that applies a 1 radius “blur” to being an integer field where 0 = disabled, 1 = existing antialias and 2+ applies a wider blur
  • :wastebasket: Brush “blend mode” - “add” and “mid” options were binned, while “User” and “Inherit” were changed into…
  • :twisted_rightwards_arrows: Brush “Inherit from block(s) below” checkbox - replaces the “User” (unticked) / “Inherit” (ticked) options previously in blend mode
  • :twisted_rightwards_arrows: Placer > Rotation - the text label with the overall rotation has been replaced by x/y/z .5 step float inputs, allowing for direct input of an angle rather than relying on buttons/an increment to get the angle you want
  • :new: Box selection > “Export as” - can now export from the box select tool like you can from the placer
  • :hammer_and_wrench: Box selection content - this is an attempted fix for scenarios where ‘cut to new layer’ or ‘copy to placer’ etc appear to acquire blocks that are outside of the box; let me know if it still occurs
  • :hammer_and_wrench: Float field dragging with low step - I was finding fields that can be incremented by .1 can sometimes get stuck during a click drag, have made a change to not get stuck
  • :hammer_and_wrench: Various missing glyphs in the font file - things like ~ and ; in labels were being rendered out as ?, these should now render properly

0_2q

  • :new: Filters > “Metadata” - allows for custom data to be edited and shown on the map, and exported to json. Uses json templates as starters, more on this below.
  • :twisted_rightwards_arrows: Import > “image plane” - renamed to “image reference”
  • :new: Import > “image volume” - performs the image reference import, converts it to volume, and moves volume to bottom of image in one step
  • :twisted_rightwards_arrows: Tools > “Fill” - changed its default key to N as the previous key F was already being used for fuzzy select; N is nice and close to the plane hotkeys
  • :hammer_and_wrench: Import > hmap, cmap, hmap + cmap - the rotation/flipping issues are resolved! Exports/imports are now the correct way up to how you’d expect them to be
  • :hammer_and_wrench: Placer history - fix occasional mismatch between preview and the file it would load in
  • :hammer_and_wrench: Import > “cmap” - fix blocks appearing out of thin air. This was caused by a png image plane with semi transparent pixels being converted into a volume - voxels with <127 alpha were not being rendered, but the colourmap import made them fully visible again. Have fixed at both the ‘to volume’ stage and the colourmap import stage
  • :hammer_and_wrench: Filters > “Transform - Squash” - should no longer move the volume’s position to the origin as it did previously

0_2p

  • :new: Placer - model can now be scaled on individual axes and by custom percentages
  • :twisted_rightwards_arrows: Placer export - can now use kvx alongside the existing txt export
  • :twisted_rightwards_arrows: Placer rotation - can set a number for how much each button press rotates the model, default 22.5
  • :twisted_rightwards_arrows: Selection - holding alt to move blocks now uses temp layer and merges in on release of drag (no overriding of blocks during drag)
  • :twisted_rightwards_arrows: Selection - holding alt to move blocks now correctly pushes history so it can be undone
  • :twisted_rightwards_arrows: Extrude - now honours noise settings so that extruded blocks can be noisy
  • :twisted_rightwards_arrows: MagicaVoxel export - now supports >256 by splitting into multiple objects
  • :twisted_rightwards_arrows: Open recent - shows a new 512x512 map if it fails to open the file marked as last edited
  • :hammer_and_wrench: hmap + cmap import - it forgot the hmap path first time of asking (more work on hmap/cmap import coming, #30 )



1 Like