LightWave Hair with FiberFX

So we used to have shave and a haircut, then sasquatch, and now an improved FiberFX.  For one who doesn’t need hair in their projects very often I found this a major bonus.  The few times in the past I have tried to use it, LW would either turtle up one me or out right crash.

Today was way different when I read a sad post that sasquatch didn’t work in 2018, it made me think why can’t we now use FiberFX?  The answer for me is you can.  Sure there is some instances where it won’t work but for 99% of the time I believe you can make it work.

During the time I was playing with it one of the most annoying things to me was I couldn’t change the hair color.  In the past it was simple to just pull up the node editor in FiberFX.  Well the good new is the moved texturing to the more powerful surface editor!  Surface editor is now starting to look like the one stop shop for all our surfacing needs.

I have yet to make any amazing hair that I would share.  I can say the tools are easier to use and I was able to make a quick hair do for my sphere model.  I’ll keep updating this post as my experiments get a little better.  But what I do know is in the past FiberFX looked easy to use but never worked for me.  2018 has changed that. I would expect some talented artists out there to start making some killer hair-dos.  If you get some good results please share your results.


Here is a quick test render that took a few days to get these simple results.  The main thing I learned from this is that the FiberFX has reflections and shadows.  This was a big complaint for some of the hair plugins we had in the past.

Ball with FiberFX applided to show hair

For more technical information on FiberFX you should check the manual at NewTek.

LightWave 2018

LightWave 2018

Screen shot of LightWave 2018NewTek finally released the next iteration in their 3D software, LightWave 2018, and it is looking amazing. This wasn’t that much of a surprise since a good friend updated me on this weeks before. Well now that the whole world knows LightWave 2018 is here!  Are you ready for this new update?

Render Engine

There are many changes and a lot of them center around the render engine being rebuilt in 2018.  This means the old surface editor has been obliterated to make room for a fancy new PBR (Physically Based Rendering) based system.  You maybe wondering what PBR means to us and I will dig deeper into this new technology for those interested.  PBR is a deep topic and will require a lot of my time to explore.  Stay tuned for there will be some explanations and examples coming. Continue reading “LightWave 2018”

Looking at 2017 in the past

2017 will be a year to remember but looking back I have to ask myself what did we do to make it go so fast?

One thing is the cool new world of micro processors and the many different projects that look fun to build. After reading a book on Node.js the author put in some gems about robotics which peek an interest. I got my first Arduino UNO board and have been hooked on building different test projects and now working on a self driving robot.

In October we got a chance to visit Adobe MAX and let me tell you what an inspiration it is to visit such a large geek/nerd show and see so many cool people enjoying being a geek. We are already planning going to MAX in 2018 so hopefully we will have more fun information to share. Most of the lectures were spent learning Premiere and After Effect which means I should take some time and write up a few new tutorials for the site. Maybe this should be a 2018 goal to get back into working on tutorials.

Towards the end of 2017 I started working in Lightwave again and building some models for a game. I’ve been missing the creative side of my work these past few years since most of the projects I work on now require a lot of code. But building a game it has been nice because now I can work in LW again and build custom models.

Learning has always been a most import part of my daily workflow. Although the more I learn it seems that there is less I know and more I forget. But hey I guess as new ideas are learned I need something to fall out so I can use other brain cells for more pressing needs.

Well happy new year and hope this one will just be as fun and productive!


Sorry today’s post is kind of random but today when the power went out it reminded me how much work is needed to bring my network backup to an operational level. With iSCSI initiators failing to connect because of a boot issue it made for an unhappy network server and staff. It also didn’t help that at the same time I needed to rebuild the RAID array.

Why do networks have to be so complex these days? They used to be a simple way to push files around the office and keep those people out of places they didn’t belong. Now we have NAS storage systems, VoIP phone networks, and on top of this security is even more evasive.

Well those are my random thoughts for the day and I wish instead of doing this work I could be playing in LightWave.

2016 Reflections

Last year was a busy year at work and I must say I had many small accomplishments. Looking back at last year I can’t believe the many new things I learned. It started when we got a toy quad copter for our son which turned into a fascination of mine to learn how to fly. Don’t worry I’m not going to start a tutorial on how to fly there is plenty of those on the internet. Next when I went back to working in 2016 we start working on moving our entire company from two building into one which meant combining 80+ employees into one new network. So I got to learn how to program VoIP switches and build a network from the ground up. Install a new firewall which was fairly straight forward. Then we installed a new WiFi network which include several access points that then linked into a master controller.

If that wasn’t enough for one year we released a new major version of our time tracking system which I worked on for at least 6-8 months in 2015 and finally put the polishing touches on in 2016. It brought many new features and made the system more mobile friendly. Overall this release was fairly well tested and ready for production with a few minor issues that got fixed quickly.

Next we launched a new project which required a new application engine to be built to help support the adverse new technologies on the internet. This code base has been a lot of fun to work and and has really started to take shape in our current project.

As for Lightwave I did upgrade to the latest release and rewriting my tutorials for the current version as you can read on the site. I didn’t do as many tutorials as I was hopping to do but maybe this year we will find some time to sit down again and start building some tutorial projects.

I would like to bring back the preset library we had started developing for this site many years ago but we will have to see if there will be time this year.

Event though I only listed a couple of small projects there was a lot going on which made this past year go by quickly. Hope you had a good year and that this year is even more exciting!

JavaScript Introduction

What is JavaScript?
JavaScript is a simple programming language that was adopted by the internet to help make websites more reactive to their users. JavaScript has nothing to do with Java which is owned by Oracle but originally developed by Sun Micro Systems. It does have a lot of similarity to the C/C++ language but isn’t as rigid in the definition of a variable.

What do I need to program in JavaScript?
When I started programming website the first application I used was Microsoft Notepad. This is really all you need to develop JavaScript applications but has no frills to help make your code build itself but I would recommend if your going this route to use Notepad++. There are many other programs that can help like Visual Studio from Microsoft which has a free version for individual developers. There is also Aptana which is a project based on eClipse which is also another developer environment that can be used.

What is really needed in a developer environment is code completion. This one feature helps reduce bugs as you create code. Just do a search on the internet and you should find many different reviews of applications that will build good JavaScript code.

Now that I have an application how do I run my code?
Now you have some code and want to see how it works there are a couple of ways to see how it works. The easiest way is to write a simple HTML file that will include your JavaScript code in the header of the HTML document. This is an example of an HTML file I’ve used to test my own code:

  <script type="text/javascript" src="mytestscript.js" />
  <div>Hello HTML</div>

Another way is to just put your code between a script tag and this embeds it directly in the HTML code. If you want to find how developers typically add JavaScript code to a webpage then just go to a webpage and look at its source, typically [CTRL]+[U] but is also dependent on the browser developer. Even though JavaScript is a complete language it will help that you also have a really good knowledge of HTML.

That is JavaScript in a nut shell. It is a very fun language to work with that can be fun to make more interactive web pages. There are also different projects that use JavaScript as a way of extending their application but these are more advance and specific topics.

JavaScript Introduction to Output

JavaScript has been around the internet for many years. It is a great language and today has a lot of power that can be used to make website more interactive. Like any programming language one of the most important steps is to find a way to send information to your users. My first program I ever write in any language is a hello world program. For this introduction we will show a couple of ways we can send a message to the user.

The first and most reliable way is to use an alert box to send a message.

alert('Hello world!');

A browser when it loads this code will popup a message box that say’s hello. It is very simple and very easy to show output to the end user but the alert box should be only used when you need to tell the user one message. The problem with an alert box is it becomes a blocking command and will stop the user from accessing your website until it is closed. Many times I have put this into an infinite loop which will crash the browser or annoy your end user so much then don’t want to receive alerts from your program. So use this one very sparingly so that you don’t send a ton of alerts to the user.

During programming some times it is nice to send a message about what a certain variable contains. In many other language development environments this is easy to deal with because you can step through your code as it is executed. There are ways to do this same process in JavaScript but for the most part it becomes difficult to connect your IDE to the code. This is where using the console message system can be essential to sending debug information to a place you can see it but most people will never see it. Here is a couple of different ways to use the console system to send hello world to the browser.

console.log('Hello world!');'Hello world!');
console.error('Hello world!');

In the above code example it shows three different methods you can call to send debug information to the browsers console message. To see these messages you need to open your developer tools for your current browser to see these messages. This is different for each browser and many times it can even be dependent on the version of your browser. For the current version of Chrome Version 54 it is hidden under the three dots -> More tools -> Developer tools or [CTRL]+[SHIFT]+[I]. Microsoft Edge pressing [F12] or pressing the three dots -> Developer tools. If you have a different browser just check the internet for how to open their developer tools.

The next way is a little more difficult and requires some extra work but we can use this to add HTML code to the page and display it.

document.body.innerHtml += "<div>Hello World</div>";
var div = document.createElement('div');
div.innerHTML = "Hello World too!";

In this example I show two different ways to add the div tag to the page. The first one is a one liner and isn’t the most reliable way to add text because it isn’t added to the DOM but will show a simple message on the web page. The second one is a little more reliable because it adds the div tag to the DOM and then will be more functional with JavaScript and the website.

These are typically the most common ways to send output to your users. For debugging I like the console method the best because in many browser if I send an object to the console it becomes something that I can dig into and find what information is being store in the object and not just the object type. A lot of the functionality of the console is dependent on the browser developer so find a browser that has good developer tools and use that to start. But once you have some working code test it in as many different browsers as you can find.

HTML5 and Canvas Troubles

The other day I got to use my HTML5 Canvas game engine for a project that wasn’t game related but needed to be dynamic. This project was a lot of fun until one of our project members couldn’t see the project on his browser. Digging into the issue some it was related to the Safari browser on his mac.

Without having a mac myself this was very hard to diagnose and the project member wasn’t very responsive. So instead of bugging our team member every few seconds as I tracked down the issue I found a cool website called BrowserStack where they have a lot of different browser you can use to test your site. This isn’t a bad option when you don’t have access to a virtual mac or even a virtual system to test on. The major down side I found to using this kind of site was that the iteration process was really slowed down.

The big pro on this site is that once you get the browser up and going it will save the link your testing and use it for just about any browser you run a test on. I would like to get a one month subscription for them to do some other major testing but I just did have the $30 to shell out for this project.

The big lesson I learned on this one is JavaScript ES6 is not really that well supported and many of the new features I was using in the engine had to be down graded to code that would be supported by older browsers. This is very typical for browsers and has always been an issue since I started working in the web back in the mid 90’s. Never expect your users to ever have technology that will support all the cool new features you want to use in your web application.

The same probably can be said about operating systems because new version come out just about every other year in the Microsoft world and in Linux the roll out is even faster. But for most user they don’t upgrade to the latest and greatest gear every time a new version comes out so be prepared to support old technology on any of your projects.

One of the major issues I ran into was the new promise structure of ES6. This was a cool idea to try and use but is only support by modern browsers which means Safari didn’t support it in 7.1. Fortunately I had already started building an event system for the engine so I changed it from the promise into being driven by an event.

The new “let” definition was also not supported so I had to change a lot of code where I used the less scoped let back into var. There were many other errors but once these got address I was able to then uglify my code without errors. It seems even today ES6 isn’t that well supported but hopefully this will start to change soon.

Tutorial Update

Just finished redoing the sky dome effect tutorial. I also did a quick video tutorial to go with this for those who want to just watch the process. Sorry there is no voice to the video because I was doing it quickly for the written tutorial.


Enjoy the update version it now also includes a couple of clips from Lightwave showing the process.