[-50% SALE] Black Friday / Cyber Days sale on GS CurveTools and GS Toolbox plug-ins for Maya

News / 24 November 2022

Black Friday (Cyber Days) sale is here! 

-50% on everything!

(November 24 - December 03)


GS CurveTools

GS CurveTools for Maya simplifies the process of creating beautiful hairstyles for games by allowing for quick and easy control over hair cards using curves.

GS Toolbox

GS Toolbox is a powerful polygon modeling tool for Maya, that simplifies the most used functions in Maya as well as adding a bunch of unique functionality like Fill with Quads, Instance+, Interactive Booleans, Procedural Arrays and more.

GS CurveTools Trailer/Quick Overview

Tutorial / 29 August 2022

GS CurveTools Trailer/Quick Overview

Just a quick overview video for new users of GS CurveTools:

GS CurveTools v1.2.8 Update - Optimization and Bugfixes

News / 27 June 2022

GS CurveTools v1.2.8 Update - Optimization and Bugfixes

Update Video:

New Features:

  • All the relevant buttons now have (optional) tooltips. Can be disabled in the Options.


  • Convert Curves is now out of beta (in the Options menu):
    • Card -> Card conversion will now correctly keep original orientation and profile.
    • Will now retain original materials on conversion.
    • Performance was improved.
    • Twist, Width and Profile Graphs are now applied to ALL selected curves.
  • Card to Curve algorithm was rewritten and improved:
    • Better compatibility and reliability for one-sided cards with different vert orders.
    • Optimization and speed-up of the algorithm
    • Cards with no width spans are now correctly converted.
  • Massive improvement of the Mirror operation:
    • Improved orientation and profile calculation during mirror for all Warp and Extrude cards.
    • Speed-up and optimization.
    • Much less orientation “drift” when using “Flip”.
  • Orient to Normals algorithm improvements:
    • Optimization and speed-up.
    • Increased precision with less iterations.
    • Cards will not flip or change orientation on continuous use on already aligned cards.
    • Reduced angle tolerance to 1 degree by default.
  • Select CVs slider was improved. Current hotkeys:
    • Shift + Drag: additive selection.
    • Alt + Drag: deselect CVs.
    • Ctrl + Drag: allows for slider movement without selection change.
  • Expanded supported texture formats list for the UV editor. Added TIFF (TIF).
    • Full list of supported texture formats: JPG, JPEG, PNG, TIF, TIFF, TGA (24bit, no RLE).
    • Also added additional info for the “Wrong format” error message. It will now specify that TGA has no support for RLE compression.
  • Minor improvements for curve creation algorithm (better refinement and divisions calculation)
  • Some minor UI adjustments

Bug Fixes:

  • Fixed a hotkey conflict with layer selection:
    • Holding Ctrl + clicking on Layer should now select the contents of that layer, and deselect everything else like intended.
    • Show Always on Top hotkey changed to Ctrl+Alt.
  • Fixed a bug where “Layer Isolation Selection” hotkey was not working properly. Now holding Shift+Alt and clicking on Layer will isolate select this layer properly.
  • Transfer UVs will now correctly transfer H-Flip UV attribute.
  • Select CVs slider will no longer deselect the last selected CV when using subtractive mode.

GS Toolbox and GS CurveTools Maya 2023 Updates

News / 27 April 2022

Both GS Toolbox and GS CurveTools were updated to support Maya 2023.

GS CurveTools v1.2.7 Update

New Features:

  • Maya 2023 Support
  • Global and Per-Layer Always-On-Top toggle for curves (“Per-Layer” is only for Maya 2022+)
  • (BETA) Convert one type of Card/Tube to the other type (Warp->Extrude, and vice versa).
  • Might have issues with orientation when converting
  • Might have other issues with old Cards/Tubes
  • Recommended to use only on newly created cards/tubes (v1.2.7+) and NOT on the old ones.


  • Scale Factor is now stored in the scene as well as in every created curve. This will allow for better compatibility with other functions and more reliable workflows in the future.

Bug Fixes:

  • UV Bug that was in 2020 and 2022 was fixed in 2023 by Autodesk. 2020 and 2022 still have it, obviously.


  • Maya 2017 support is dropped. Might work just fine with this update, but there will be no bug fixes for 2017.

GS CurveTools v1.2.7 Update Video:

GS Toolbox v1.1.6 Update

New Features:

  • Maya 2023 Support
  • Selection Sets Boolean Logic. Middle Mouse Drag or Click with Modifiers:
  • Shift + Ctrl to add selection to the layer or (combine layers if dragged)
  • Shift + Alt to get a difference between the layer and the selection (or the difference between dragged and target layer)
  • Ctrl + Alt to get an intersection between the selection and the layer (or the intersection between the dragged and target layer)


  • Major improvement for Duplicate and Extract functions. They will now separate only selected faces and other detached shells will stay combined with the original object.
  • Added Hotkeys:
    • Create Crease Sets
    • Creases to Bevels
    • Bake Crease Sets

Bug Fixes:

  • Fixed a bug with “Repeat Last” hotkey not working for some functions.


  • Maya 2017 Support is Dropped. It might still work just fine but there will be no bug fixes for this version.

GS Toolbox v1.1.6 Update Video:

GS CurveTools and Maya 2018 deformer issue

News / 24 April 2022

As this issue keeps resurfacing for some users I'm reminding you about the documentation and that it has many useful insights on those issues.

It is highly recommended to use the latest patches available for your supported version of Maya, unless it's the latest release (like 2023).

Maya 2018 patches prior to 2018.6 had issues with the deformers that affected GS CurveTools functionality.

If you ever encountered the issue where during the orientation some vertices were "stuck" in place, this is it.

Just update to 2018.6 and you are good to go.

War in Ukraine

News / 07 April 2022

For those who are interested... here's my personal stream of thoughts, opinions and timeline.

As ArtStation is my biggest social media, I'm posting it here.


I don't have a lot of social media presence and to be honest, as a very private person I was happy with it. Although I have strong views on many political and social topics, I was never too interested in going on Facebook or Twitter to argue with random people about them.

However, this is bigger than that. It's bigger than any politics or views or opinions. This is a war of destruction and genocide.

I was never aligned with russia or their "values", although most of my live I lived in a very "pro-russian" city of Odesa (as it was before 2014, anyone who lives there knows how very much anti-russian this city is now)

However, there was never any hate from me - just refusal to accept.

This turned into open distancing, antipathy and aversion since 2014...

After February 2022 there was disgust, enmity, abhorrence and loathing...

After Bucha there's only rage and hate...

First Thoughts on this War:

I will just quote my message on my Discord server that I've posted after the first month of the full-scale war as it encapsulates everything at the time:

One month has passed since the start of a full scale russian invasion on the free and sovereign land of Ukraine.

8 years of war for the freedom of our land.

Hundred years of oppression of our right to exist as a nation.

Millions of Ukrainians had to flee their homes to save their lives.

Thousands had died.


Numerous war crimes were committed by the russians and the list just keeps updating every minute.

Those russians who elected and nurtured their dictator for 22 years, who refused to protest against fake election results for YEARS (many even helped to skew the results), who were happy and ecstatic with Crimea annexation, who were happy for another small bit of land added to their empire of evil and corruption and who still, to this day, support this war ARE as guilty as their “leader”.

Don’t tell me about the “lack of choice” or "good simple russians".

Staying silent and refusing to resist is a choice they made.


Ukrainians will keep fighting for our people, our land and our freedom.

This war might take another month, or another 8 years.

In any case, this will end with our land free of russian invader scum and our cities rebuilt.

Russians will have to nuke every city and village and kill every Ukrainian out there in order to have a semblance of victory.

We will never forgive and we will never forget.

Слава Україні!


After Bucha Massacre:

However, this was before the Bucha Massacre and all the horrific images and reports (that I will not post for obvious reasons). You can find all the information about this horrible act of genocide of Ukrainians by russian army online. There are plenty of details.

I've tried rewriting this part a few times for a few days to comply with ArtStation policy, but I failed and deleted the entire section.


What I will say again is that there is no forgiving this. The sheer rage and hatred is overwhelming. There are no excuses any russian can make as to why this happened. They can not say "it's putins war, not ours" when your soldiers, your compatriots, the ones you've raised, the ones you've educated, the army you paid taxes for - are doing this. This is your war.

The Bucha Massacre will be another scar that Ukraine will never heal properly.

This is what the "russian world" brings. Only death and destruction.

Mariupol, Donbass and what's next:

After the russians were destroyed near Kyiv and on the north of our country, failing at every objective other than killing civilians and destroying infrastructure, they moved their attention to the south and south-east.

In the attempt to justify their failure near Kyiv they've started to say that "Kyiv was never the goal, and we never wanted to overthrow the government there". What a load of bullshit, as always. Every time they open their mouths, only lies, bullets and missiles fly out.

The land to the south and south-east is open and vast. The territories are huge and logistics are complicated. There is a good change that this will be the most expensive and prolonged part of this war. There is no telling how long this will last, but I'm certain just as before, that the aggressor will be thrown back from our lands as fast as our Military is capable of.

Mariupol, the city-hero, is still standing at the time of this post. The amount of heroism and determination needed to hold this city against the horde of invaders is astounding. Every last one of our fallen warriors will be honored and remembered. Every last one of those who still stand will fight to the last breath. The city is destroyed, but it will be rebuilt under Ukrainian flag, just like every last one of the cities and villages destroyed by the "russian world".

Kharkiv, the second biggest city in Ukraine. Mostly russian-speaking. Before the "liberators" came there, it was a beautiful city with blooming economy. Now, a lot of it is in ruins. Lives broken and lost. Livelihoods destroyed. Never surrendered, never will.

Kherson, the first and the only big city the russians were able to occupy. Every day there are protests. People are coming out on the streets with Ukrainian flags, sing our anthem and stand unarmed against the occupiers. People were shot, grenades were used. On the next day - people are on the streets again. This city will never surrender.

Donbass region. The region parts of which russia basically tried to annex in 2014 along with Crimea. This region was the "official excuse" for this full-scale war. The russians tried to justify this madness with the "protection of the Donbass population" by killing and destroying this population, bringing stagnation and recession to this region since 2014. Even the clean tap water is a luxury there now... "russian world" at its finest.

So what's next? Most likely a long war. If russians refuse to retreat, this will most likely be months (if not years) of constant tug-of-war. More people will die, more lives will be broken. Occupied territories will have issues with food, water and other supplies, because russians most often than not refuse to provide humanitarian corridors (as seen from Mariupol).

But Ukrainians have no choice as this is our land, our people and our future. We will continue fighting. Слава Україні!

Approximate map of the invasion at the time of this post

Historical background:

So for those of you who are not familiar with the history of our "relations" with russia, and have no idea about russian mentality, there are a bunch of good articles in English I recommend you to read:

The Eternal Cycle of Russian War Effort

Rashism or why russians are the new Nazi

English translation for the "Final Solution for Ukrainian Question" that was posted on russian propaganda news agency (trigger warning)

There are more, but you will have to find them yourself.

TL;DR - russians always tried to destroy Ukrainian nation. It was a bone in the throat of the russian empire, USSR and now so called russian federation. Never happened - never will.

My timeline since the start of the invasion:

Why I'm writing about this now, and not on 24th of February? Because to be honest, going to ArtStation and writing a blog was the last thing I was thinking at the moment. I've posted a small message on my Discord server (server for plug-ins support only), to notify people that I will temporarily close the server and my first thoughts on this invasion:

After that I started looking into the ways to help however I can. In the first weeks of this invasion I've donated a substantial amount of money to our Army and ComeBackAlive fund.

When my brother (who served in the military for 2 years back in 2002) said he went and voluntarily drafted to the Army in Odesa, I tried to join the Territorial Defense Force here in Lviv. However, they said they will call if I needed, mostly because there were so many applicants in Lviv who actually served in the military and were far more useful than me. I'm way back in the fourth "queue" of mobilization (the last one) so I returned back and helped with some volunteering work locally and donated more money, payed all the taxes in advance and continued to work when I could for additional funds.

As the first month of the war passed, I decided to reopen the Discord server and continue support and work on the plug-ins as I finally had some free time on my hands and posted an update there:

After that I was mostly working and tried to return to my pre-war routine when I could. Our government urged everyone who still had paying jobs to continue to work, because our economy needed every worker and tax payer it had. So I did just that and we are here now.

GS CurveTools and Toolbox and Maya 2023

News / 01 April 2022

About Maya 2023

I know everyone is excited to update and try new features and promised performance improvements. 

However, when you are using external plug-ins it's always a good idea to wait a bit, before updating. 

Maya 2023 is not yet officially supported for GS Toolbox and GS CurveTools. Any issues you might have with the new version (if the plug-ins will work at all) will not be considered as bugs or noted until I go through and test everything myself. 

Right now I have no time to update the plug-ins to 2023, however, it will be done and 2023 will be supported as soon as possible. 

Maya 2017 support will be dropped, as there is no way I will be able to add new features and test so many versions of Maya for bugs. It might still work just fine, as 2017 and 2018 are very similar. However, I will not actively bugfix 2017 issues after 2023 version is supported.

GS CurveTools v1.2.5 Update - UV Editor & Layer Management Improvements

News / 24 January 2022

GS CurveTools v1.2.5 Update

UV Editor Non-Square Texture Maps Support

This update for GS CurveTools is focused on improving the UV Editor and Layer Management System.

IMPORTANT: when updating you must reinitialize the plug-in using the initialization command from the installation steps.

UV Editor Non-Square Textures Support

UV Editor was introduced in v1.2 in order to get rid of the tedious UV setup process. However, before v1.2.5 UV Editor was not compatible with non-square texture maps, and was displaying them incorrectly. There were workarounds, but in general that was a serious limitation to its functionality.

With v1.2.5 that was completely fixed and now any texture resolution combinations are supported. 2048x4096 or 4096x1024 or any other resolution will be correctly displayed.

UV Editor Alpha Map Support

Alpha map and Transparency is now supported as well. You can enable the transparency in the new Options tab by clicking on the Alpha toggle.

Alpha map must be connected to the Transparency plug in the material.

UV Editor Custom Viewport Colors

UV Editor can now be customized using Editor Colors color swatches. They control background(1), grid(2) and frame colors(3):

Those colors will be saved automatically and used in every project. To reset the colors, reset the plug-in settings to the default.

UV Editor Texture Map Transforms

Texture map preview in the UV Editor will now use Translate Frame and Coverage parameters from the place2dTexture node. Texture map will be transformed based on those parameters if Transform toggle is enabled.

Layer Customization Improvements

With v1.2.5 there is a new field in the Layer Customization Window (previously Custom Colors Window) that allows the user to name each layer individually and store those names as a global preset.

Whenever Regroup by Layer button is pressed, those names will be used as new names for the generated groups.

IMPORTANT: Don't forget to press "Set To Scene" to apply the changes to the scene or "Save to Preset" to save global preset.

More info is in the documentation: LINK

Update Video:

[50% SALE] Black Friday / Cyber Days

News / 24 November 2021

Cyber Days Sale -50%

I'm happy to announce that GS CurveTools and GS Toolbox for Maya will have a 50% discount for 10 days from November 25 to December 05 during the ArtStation Cyber Days sale.

GS CurveTools

GS CurveTools for Maya simplifies the process of creating beautiful hairstyles for games by allowing for quick and easy control over hair cards using curves.

Link for a demo hair project

Full Tutorial for the latest update with timestamps:

GS Toolbox

GS Toolbox is a powerful polygon modeling tool for Maya, that simplifies the most used functions in Maya as well as adding a bunch of unique functionality like Fill with Quads, Instance+, Interactive Booleans, Procedural Arrays and more.

V1.0 Features overview (current version is v1.1, with added Arrays and improved UI):

Full Tutorial for v1.1 with timestamps:

GS CurveTools v1.2.4 Minor Update - Orient to Normals and Mass Bind

News / 09 August 2021

GS CurveTools v1.2.4 Minor Update

Orient to Normals, Mass Bind and Mirror Improvements

This update for CurveTools is focused on improving workflow with bound cards (hair clumps) and also improving the overall usability of the Mirror Function.

The main new feature in this update is Orient to Normals function.

Orient to Normals

When creating hair (especially the shorter variations), it can be tricky to place all the cards and orient them correctly to the scalp. This manual process can take hours, and even days.

While Orient to Normal is not a "one button click" solution to making amazing looking hair style, it can definitely improve your workflow and save some time.

Orient to Normals main function is to orient all the selected cards to the normal direction of the base mesh. What that means, is that it will try to align all the selected cards so they are facing away from the mesh, just how they are supposed to be.

Orient to Normal consists of a Menu that can be found in a Curve Control Window. This menu will be active when either polygon mesh or nurbs curve is selected.

In this menu you can find a target mesh field as well as "Select Target" button.

To select a mesh as a target you can simply type the name of the mesh in the field, or select the mesh in the viewport (or outliner) and click on "Select Target".

Now that you have your target polygon mesh selected, you can simply select all the curves you wish to orient and click on "Orient".

You also have some options available for Orient to Normals function.

  • Refresh VP checkbox will Enable/Disable viewport updates during the orientation process. Disabling the updates can save some computation time and speed up the process, especially if you are orienting hundreds of cards.
  • Iterations control the maximum amount of iterations per card that is allowed to happen. Increasing the iteration count can result in a more precise orientation, but with longer computation times. It is not recommended to blindly crank up the iteration count as this can lead to very long computation times and the final result can be marginally better.
  • Min.Angle this slider controls the minimum angle tolerance that the Orient to Normals is targeting. The smaller the angle, the closer the orientation will be to the "ideal" alignment with the mesh. Please note that very small numbers can cause incorrect orientation calculation, depending on the position of the card. Recommended value is 3-5 degrees.

Hotkey for Orient to Normals function is also available in the Hotkey Editor

Notable limitations: Orientation works best with single sided cards. Tubular shapes, complex hair clumps and braids can have less accuracy during the orientation process.

Mass Bind

In this update there is a new option in the options menu called "Bind to All Available Curves". This option enables so called "Mass Bind" algorithm for the "Bind" function.

Enabling this option will result in two things:

First, it will automatically enable Duplicate Curves Before Bind option.

Second, it will automatically bind the selected hair clump (or geometry) to all available "Empty" curves.

"Empty Curves" simply means that there is no geo or clumps attached to this curve at this moment.

Important to note that this Mass Bind function acts exactly like the normal Bind, but simply applied to multiple curves in one click.

If the empty curves already have parameters on them (for example, you used Unbind to remove geometry from them before) those parameters will be automatically restored. This allows to use this workflow to change the bound cards "en masse" during your work.

Mirror Improvements

With this update the Mirror Function introduced in 1.2 update received a major improvement.

Before, mirroring cards sometimes resulted in an incorrect orientation of their mirrored copies.

After this update, orientation of single cards should be much closer to the original cards (but mirrored, obviously).

This works perfectly for single cards (Warp or Extrude). However, for complex shapes like hair clumps (Bound Cards) with a lot of components and different shapes and orientations (tubular shapes etc), this mirror function can have problems orienting the final mirrored result correctly.