Uncategorized

Rendering from the command line in Blender: Part 2 – down the rabbit hole

I recently wrote a tutorial about the basics of command line rendering in Blender. If you haven’t read it, check it out here.

There I explained why using the command line is a good idea. I also gave you the most basic command that you’ll likely use 80%+ of the time.

c:\>blender -b file.blend -a

(The previous article explains what that means).

In this part I want to go just a bit deeper into what’s possible using cmd.exe.

Before that I’ll mention a few things that came up in comments related to the Part 1.

Some people noted that rendering from the command line makes their renders slightly… slower (about -5% or so). Technically this doesn’t make sense. But I’ve seen this complaint often enough to believe it. So do your own tests and find out if rendering performance from cmd.exe is better, same or worse. The improved stability seems to be undisputed tho. To me that will often justify a (potential, small) performance hit.

I also learned about two Blender addons that help you render from the command line without the hassle of writing commands by hand. I have not used those. I include the links without a recommendation or comments:

https://blendermarket.com/products/b-renderon ($8)

https://github.com/RayMairlot/Batch-Render-Tools (for Blender 2.79, Free)

Alright back to writing commands.

Setting up Beginning and End of Frame Range

One thing I need from time to time is to set the beginning and end of my “active frame range” (the range of frame that will be rendered). I want to do so without opening blender and messing with the interface. Our trusty basic command will change only slightly:

c:\>blender -b file.blend -s XXX -e YYY -a

So we inserted “-s XXX -e YYY” between the .blend file and -a. As I mentioned in part 1 the order in which you write the command is important. Do not change it.

Let’s explore the new commands:

  • -s : stands for Start. That’s the first frame of your “frame range”
  • XXX : replace that with an actual number. If you want your render to start at frame 54, type “54”
  • -e : stands for End. That’s the last frame of your “frame range”
  • YYY : replace that with an actual number. If you want your render to end at frame 102, type “102”

So a realistic command would read something like:

C:>C:\Program Files\Blender\blender.exe -b C:\MyProject\scene.blend -s 54 -e 102 -a

This will render your scene.blend exactly the way you’ve set it up. It will only change the range of frames to be rendered.

Here is one more time-saving workflow that I use often.

Using batch (.bat) files to render several files in a row

Let’s say you have to render a couple of scenes. Each of them is not too render-heavy. You want to tell blender to render them one by one and go to sleep (I mean you want to go to sleep, not Blender).

You can do that with a batch (.bat) file. This is how to do it under Windows. I am certain the same can be achieved under Linux/Mac but the steps to get there will be slightly different (and I don’t know them).

In Windows open up and standard Notepad and simply type a command for each file you want to render. Separate them by pressing Enter after each one. The list will look something like this:

In Notepad click File > Save as… and give it a filename like “render.bat”. To be clear, you give it a .bat extension even though Notepad normally saves .txt files.

(Depending on your Windows settings, you may get warnings, errors etc. I can’t think of every possible Windows setting here but if you encounter a problem, let me know in the comments. I’ll do my best to help you solve it.)

Go to where you saved your .bat file. Double click it. Go to sleep*.
*make sure you triple check the settings of each file so you can sleep peacefully. Also make sure the commands are written correctly.

Bonus trick: Rendering several .blend files simultaneously.

I wouldn’t recommend doing this in most cases. But when you have to render several lightweight files, you can just open two or more instances of cmd.exe, write a render command and hit Enter in each one. Or you can create two or more .bat files and start them simultaneously. As I said it’s not something you’d normally do but I do find it beneficial on rare occasions.

This pretty much sums up all the ways I use the command line. As you can see it’s very simple to use. And it can be a life saver.

If you really want to go deep into all the options available for command line rendering, check out this page of the Blender manual: https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html

I hope this information helps optimize your renders.

Happy cmd-ing!

Blender – improve render stability 100% by rendering from the command line

I recently converted to command-line-ism.

In this article I’ll explain the benefits of rendering your final animation from the command line. (You know? That ancient looking Windows thing where you have to type commands by hand. )

It’s not as scary as it looks. I promise!!! And the benefits far outweigh the slight hassle it causes.

The main benefits, by the way, are speed and stability. Your renders finish faster and they’re less likely to crash.

I am using Windows but you can follow along with any OS that Blender runs on. The commands are exactly the same no matter the OS.

Just to be clear, I recommend the command line for your final renders. You can do your test renders etc within the interface but when it’s time to render a final animation it’s cmd.exe time.

Why I started using CMD

The turning point for me was when I tried to render some Flip Fluids simulation in Blender 2.8. As of this writing there is still a (blender) bug that causes problems between Flip Fluids and Blender 2.8.

When I rendered from the interface Blender crashed every few frames.
That prompted me to give the command line a try. I figured it would be simpler to copy-paste a command rather than re-opening Blender, changing parameters etc every few minutes.

But to my dismay the rendering from the command line simply NEVER crashed. It rendered hundreds of frames without a problem.

Crash every few minutes VS writing a short command and going out for a coffee…

Which one do you choose?

The 80/20 of Command Line Rendering

You can setup all sorts of options from the command line but the cool thing is, you don’t have to!

If you don’t want to go too deep into that rabbit hole you can simply remember one command.

>c:\blender_path\blender -b c:\file_path\blend_file.blend -a

This will render an animation with the exact settings that you defined in “blend_file.blend”. Just make sure you setup the correct image format, active frame range, image resolution, render samples, output folder, file format etc. etc. and the above command will respect all of them.

Let’s explore that a bit more. Before you can even type the above command you have to start the command line. There are several ways to do that but the way I do it is to press “Windows Key + R”. In the window that pops up type cmd and click OK. Done.
(I can’t help with Mac and Linux. Please find out for yourself!)
(EDIT: there is a page in the Blender manual, dedicated to starting the command line under each OS!)

Now we can look at the command in more detail. It’s as simple as this:

There only two things to keep in mind here.

  1. Always write the command in this order.
  2. In real world scenarios Blender itself and the blend file are in different folders so you have to add the file paths.

So your actual command will look something like this:

In Windows you can drag files from Explorer into the command line which will produce the file name and path. The only annoying things that it puts the whole string in quotation marks so you have to delete them by hand.

Update: Someone with the nickname “cgd” noted in the comments:

“You actually want those quotes to be added! Any spaces in the path name of the blender exe or the blend file will give you an error if you try and run it. “

-cgd

So there you have it. Setup everything inside the interface like you normally would and save your file. Then close blender and execute the above command and you have faster and more stable renders.

Happy rendering!

How to START freelancing as an artist from scratch: The Brute-Force method

In this article I am going to outline a very straightforward approach to starting your freelance career. The artists I want to talk to:
-have some artistic ability (no need to be a master but you have to offer something to your clients)
-have very few or no clients at all
-want to earn a living with their artistic skill (gradually, not overnight)
(NOTE: I am 3D artist but the advice here should apply to most creatives.)

The Brute-Force method

To the artist I described above I would recommend applying the Brute-Force method to getting clients. As soon as possible. And as actively as possible.

What is the Brute-Force method?
It’s basically applying for lots and lots of freelancing jobs, only getting very few of them. It’s a tough process.

The good part is that you’re not meant to do it forever. Just as long as it takes to secure several long-term clients. How long this takes depends on your persistence. Also on your artistic and people skills.

You’ll frequent places where jobs get posted and apply for the ones that fit your profile. Get ready to be rejected like a MOFO! I got 100s of “rejections” in 2018 😀 (Update: Now in 2019 things are better. I have a few stable clients so I have to use less brute force 🙂 )
I hope it’d be easier for you at the start. But I am afraid this is what the average artist has to expect.

Here is another way to think of this
About 1 in 10 employers will be interested enough in your application to grace you with a reply.
About 1 out of 10 interested employers will actually end up hiring you (instead of someone else they were also interested in).

Therefore it’s important that you apply for a lot of jobs. Aim to send about 10 applications a day if you can.
Here are a few places I would check for 3D work:
http://polycount.com/categories/freelance-job-postings
https://www.artstation.com/jobs
http://www.upwork.com/ (probably the most popular freelancing site)
http://www.peopleperhour.com (haven’t used it much)
http://www.freelancer.com (haven’t used it much)
Make your own list of job sites. Visit them every day. Apply to all jobs you know you can do. That’s the gist of the “method”. It’s the obvious approach that few people will take.

Can’t we use “hacks” to get to success faster?

I am all for working smart! It’s just that brute force is the smartest thing you can do when you are starting out and have no jobs coming in.

Everyone wants to use “hacks” and “shortcuts” in our culture. Those are great once you’ve achieved a certain level of success. Hacks are a way to look at your business and prune the unnecessary. But if you don’t have a business to begin with then hacks won’t work. Hacks act as multipliers. If you have zero business and a 10x hack, you get 10×0=0!

So focus on getting your business off the ground no matter what.

There are two things that are super important in this process.
1. Writing good applications quickly
2. Managing your emotions

Writing good applications

You’ll be writing lots of applications so let’s cover the most important stuff.
· We want to send a lot of applications so we need to be quick. Don’t spend hours on each application.
· However DO NOT use one letter that you just copy and paste to everyone!!! DO NOT DO THAT!
· Instead make a simple template but customize it for each job.
· If you know the name of the employer always start with “Hi/Hello *name*”.
· Match their style (to a degree). If the job offer is written in a casual style, be casual (but not too casual). If it’s formal, be formal.
· be confident in a professional manner. You’re applying for jobs that you know you can do so let the employer know you can do it. However do not be cocky and boastful.
· If possible, send direct links to your most relevant work for this job. 2 or 3 pieces are enough. You could say:
Here is a link to my full portfolio
>>>LINK
However the following pieces are most relevant for this job:
>>> piece 1
>>> piece 2 etc.

That’s it. Don’t over-complicate the process.

For more tips on good writing read this short article: The day you become a better writer.

Managing your emotions

You’ll apply for a lot of jobs. But you won’t get 99% of them. That will challenge most people.

Set your expectations right. Take the idea that you’ll only get 1 in 100 jobs seriously. Focus on finding and applying to a 100 jobs. Do not dwell on the response you get from each one.

Once you have sent at least 100+ applications you can review your results. How many replies did you get? How many jobs?

Troubleshooting

Here are some common problems in a Q and A format.

Q: I am not getting any clients. What’s wrong?
A: Did you send 100 serious proposals to jobs that fit your skills?
If you did, then your proposal may be weak. Rewrite your basic template. Make sure you use decent grammar.
More likely tho… your portfolio/skills may still be weak. Have someone you respect check your work. Ask for their honest opinion. It may be too early for you to freelance. You may still get jobs but it could be 1 in 200 or 1 in 1000. In this case I’d rather go back and work on my skills instead of sending more applications.

Q:I got a job but the conditions suck.
A: This is normal in the beginning. You may be so eager to get a job that you settle for a low price, unreasonable deadline etc. You took the job so finish it. It sucks but it helps you learn what’s reasonable for future jobs. Do not keep working with clients that don’t pay you well or do not respect you. That will eat a lot of your time that you could spend looking for better clients.

Q: I am starting to burn out due to the constant rejections. Should I keep pushing myself?
A: In my opinion, no. Take a few days off. When you feel better give it another shot. You should stop at the first signs of burn-out.

Q:Brute-force method is too brutal for me. Are there any other methods?
A:Yes, I have another article about other methods to start and grow your freelance business. They are less nerve-wracking but could be slower.

Q: I have another question.
A: Cool, post it in the comments!