Late 2013 MacBook Pro Battery

Recently I have been having some issues with my late 2013 MacBook Pro 15″ (the model without dedicated graphics).

The trackpad mainly stopped registering a click. Sometimes it only recognized a click when pressed on either left or right side and so on. It did still click though. Also there was a feel on the top case like it’s slightly bulging.

A quick Google search made it clear, it’s got to be a bulging battery that is preventing the trackpad of functioning properly. Self replacing the battery would be out of question for me as I wasn’t willing to start to mess around with disassembly required to do so, and the battery is glued to the top case. And also I wasn’t be able to be exactly sure whether the trackpad problems originate from the bulge or whether the trackpad itself had a some kind of damage.

So it was obvious that I needed this to be looked at, so I made a reservation in Omotesando Applestore and  took it in. The man quickly diagnosed the problem to be indeed a battery starting to bulge. So he offered the repair which would mean replacement of the entire top case with keyboard, trackpad, battery and so forth. It cost about 21000 yen including the repair cost. Now this is OOW; out of warranty type affair. I accepted the offer.

I took my  machine there on Friday and got it back today Monday. They sent me mail around noon yesterday (Sunday). That’s three days. So this morning I picked up the machine.

Indeed, the top case is brand new and trackpad has it’s original feel and perfect operation. I am quite happy with this service. I don’t think 21000 yen is too bad for this. At least it wasn’t logic board.

However, I do notice that the keyboard feels different, a little a bit more spongy. This could be just me gotten used to the old, worn one. It might be that this is how new MacBook Pro keyboards used to feel, at least before the new butterfly mechanism that so many have had issues with.

If I had bought replacement battery and tried to fix that by myself, I well, might have botched the job and ruined the computer. What I understood from poking around a bit in the internet, removing glued batteries require use of some kind of heat-gun or solvent that would dissolve the glue. I wouldn’t be comfortable working with either of them near my computer. And even of this was successful operation, I wouldn’t still have gotten new keyboard and trackpad. Those things do suffer from wear and tear.

So yes, I am satisfied with the service I got from Apple. This computer has been very reliable tool for me. The first one I got suffered from loose Thunderbolt ports and got warranty repair once. The machine suffers from very brief small flicker sometimes in the screen; I believe this is due to wifi interference as mentioned by other people in the internet. I have not used this machine with wifi turned off; I might indeed try that just to see if it makes any difference.

When I was returning from the Apple Store I checked some of the current gen MacBook Pros. I cannot possibly see myself buying one just because of the dreaded keyboard issues so many people are talking about, and also I quite frankly don’t need one at the moment.

I really like Mac OS experience and I can’t see myself moving away from it; no matter how I am tempted to due to the high cost of maintaining Mac. For 3D graphics and heavy video editing I use PC, but for music and pretty much everything else I prefer staying in the Mac platform.

The iMac Pro maintenance thing (as witnessed by Linus Tech Tips and Snazzy Labs) does raise questions about how interested Apple is maintaining their computer line up. I am happy to so far report that my experience was quite good.


Seaside Rocks Substance

I created this fully procedural Seaside Rocks Substance. (The source file (.sbs) is now available in Gumroad)Seaside Rocks Substance (PBR) Source File

It was quite fun to explore different techniques to create the basic rock shapes and then use tile generator and various techniques to tile them and blend them together.

I was then able to use the same rock I created to cut interesting shapes on top of the rocks to look like they are weathered.

I am quite happy how this turned out except the cracks which need some more work. I am still trying to figure out the most efficient workflow on making those things.

Adding water was really fun and I really like how it added sparkle and additional detail to the material.

In Substance Designer it’s easy to implement more detail to this such as leaves, small debris from sea and really go to town with micro detail. I also think about improving the graph by creating more rock variation, it’s possible to derive them from same base and just change them in graph. Being able to reuse nodes is so nice.

By the way, does anyone know how to split link? I know how to add those split points to make lines flow cleaner but it would be so nice if we could just draw a new line from those split points, so there would be one main line. Making y-like split into a link would be so good for organization sake.

Substance Designer iRay makes substances like these look really, really good. It’s quite easy to forget that actually what we are looking is actually a height map. Even when viewing from perspective, rocks and things like that look almost like they are real rocks with undercuts and bottom, especially when rendered with shadows. Then in game it looks just quite perfect and if real 3D objects are placed on it, the illusion is perfect.

Seaside Rocks Substance

Seaside Rocks Substance graph is quite simple.

I will make Substance with fully tweakable parameters soon. Also Youtube breakdown of the material is coming soon.

If you want to take a look at the substance I created, grab it from Gumroad now.

Also I recommend these Youtube series by Allegorithmic.

Seaside Rocks Substance details Seaside Rocks Substance details2 Seaside Rocks Substance details3

DNA Double Helix 3D model

DNA Double Helix 3D model

I created this DNA Double Helix 3D model in Blender using modifiers and SSS which was super easy to setup in Principled shader introduced in 2.79 for Cycles renderer.

Modeling DNA double helix 3d model using modifiers in Blender is a breeze. Basically the strand was created using a path. If one wants to animate the strand, adding a basic shape key to the path would allow perfect animation as the geometry will follow the path; nice and easy workflow.

The displacement is taking advantage of the adaptive subdivision which for some reason still considered “Experimental feature” in Cycles. This is super efficient as it subdivides the mesh dynamically based on the camera position. This allows more complex scenes to be rendered fully in GPU. Rendering with dual GPUs it was a breeze to come up with nice looking renders, even with effects like depth-of-field.

Lightwave has had the adaptive subdivision feature since early 9 so Blender certainly isn’t the first one in this camp. And I think this feature should be in the main feature set. However, although being called “experimental” the feature is mostly stable and I didn’t have any big issues as long as I kept the subdivisions in reasonable amount.

I did some searching and found out interesting article which mentions that DNA is actually near white.  The colours we traditionally add to DNA molecules is just for labeling purposes. I am big fan of the beginning sequence of Prometheus where the Engineer’s DNA is being rearranged. With things like this we can have some artistic freedom.

The model is a good starting point for more complex CG animation setup in Cycles. One could add particles or volumetric lighting to make the environment look like the strand is in some kind of liquid.

You can buy this DNA Double Helix 3D model royalty free at

Rusty Steel Substance with inputs

Creating Substance with Exposed Parameters

You can download this substance at Gumroad.

In this video tutorial I take a look on creating a substance with exposed parameters and input nodes.

Creating materials like these can be extremely useful and time saving because it allows serialized asset texturing with weathering effects or basically any kind of effects that will respect mesh-specific maps such as curvature, normal or AO maps. This is crazy efficient way to create PBR materials for environmental game models, for example.

Substance graph with Exposed Parameters

This is the graph in Substance Designer with exposed parameters

The graph I created could use some rearranging to make it look more clean, but it works and it’s the most important thing. I have defined the input maps in the left area. The reason why I have basically unnecessary blend node sitting there is just that I can switch some baked maps into the graph if I want to tweak it, because when the input is empty I can’t see anything in the graph. Anyway having nodes like that shouldn’t affect the performance of .sbsar because the algorithm will understand stuff like that, it won’t calculate anything unnecessary like disconnected nodes or so.

Barrel textured with rusty steel substance with exposed parameters

Barrel textured with the rusty metal substance with exposed parameters. Single material, no hand painting in Substance Painter

So I have defined inputs for Position, World Space Normal, Curvature and AO, and then I apply these to few of the weathering effects, such as mg_metal_edge_wear, a Substance Designer node which I just use as it is, and also the Tri-planar node which I forgot to mention in the video. Basically I just connected Position and World Space Normal maps to the triplanar_grayscale node and used the Rust Level Control node output as the input. This will project the material to the mesh seamlessly, almost no matter how your UVs are laid out. It is possible to do this in Substance Painter but it’s absolutely fantastic to have the control in Designer as well.

Then, basically what I have done in Substance Designer is that I have exposed some of the node parameters, such as the histogram scan which samples (or more appropriately scans) grayscale area from the procedural BW data and some of the mg_metal_edge_wear params, giving me the control. I have also created some of the switches which I have then exposed to turn some effects on and off. Clicking the graph in Substance Designer allows you to further label and organize the sliders and buttons.

Substance with Exposed Parameters

These are the exposed parameters in Substance Designer. You can change their order by dragging the handle in the left side.

What I am especially proud of are the leaks effects. This is simple slope_blur_grayscale which takes gradient map as “Slope”. What this basically defines is which way is up and down in the object. You can feed a simple gradient to this or you can use y channel from position map by using RGBA split node. So again I have connected the Position map input node to this via a switch which allows me to switch to simple gradient if the map is missing.

Rest is pretty much the same thing, blending things together using blend nodes and exposing parameters that I figured I would like to change in future.

Check out this Allegorithmic video on exposing parameters and publishing substances.


Substance Painter Material Breakdown

Substance Painter Material BreakdownHere’s a breakdown on some of the techniques I used when creating this Sci-Fi Console asset for Unreal Engine 4 in Substance Painter.

One of the more interesting ones is the ability to use anchor points to reference added height detail in those lovely mask generators. This is technique that was introduced by this good video by Allegorithmic  (that guy is such a guru!)

I also realized it’s often a good idea to create a fill layer and mask that; in that way the workflow stays non-destructive the whole way.

Anyway I hope you like this video on Substance Painter Material Breakdown.


Sci-Fi Console

I created this  Sci-Fi Console recently for my personal portfolio for UE4. I baked the normal map from high poly using Substance Painter. I’m quite glad about how this turned out with PBR metal-rough workflow.

The model is also available now in Gumroad.

Sci-Fi Console Game Model