Well, I guess I got a little board after finishing my last project. Usually I move right into some other project, but at the moment, I am lacking inspiration on what to do next. So, in the meantime, I decided to work on my low poly skills, namely, the art of character creation and rigging.
Rigging is the addition of a skeleton to the model so that they can be manipulated or animated. As you can see from “Dude”, he is able to move about and be articulated into any natural (and some unnatural) positions, such as running, pointing, kneeling, and being pushed backwards.
Perhaps the most interesting feature was that I gave him an articulate hand. He doesn’t have all 5 fingers, but he has a thumb, a pointer finger, and then three “connected” fingers on each hand. This allows for the pointing motion and some other articulate movements such as picking things up, or pushing buttons and holding objects like controllers.
Low poly art is interesting. There are so many “flavors” of it. Some low poly is focused on more of a “cartoon” look. Others are actually high poly objects with a small color pallet to produce a low poly feel. Yet some actually go for a square or “Lego” style. What I’ve done here is given the model sharp, angular features with no texture. The clothes are simply a change of the surface color of those polygons, rather than having a mapped skin with details.
I like this style and I’m trying to see what I can do with it. Hopefully a little practice will improve my skills.
Today I’ve been working on my low-poly course again. This time the task was a floating island with a waterfall. I know I’m not the best artist, but I actually really like this one. I feel it has that calm, cartoon look that makes low-poly seem fun.
I think one of the biggest parts of making low-poly work is the attention to detail. Don’t get me wrong, I’m no expert and I have a lot to learn, but when working with so few polygons, you need little details to stand out and make the image pop.
In this case, I think its the mountain color. Several of my fellow course takers did a great job, and did many thing about their island better than I did, but one thing I noticed was that all of them had the same color for the mountains as the ground. So, a simple swath of cartoony paint seems to really bring the model to life. Or at least, that’s my hope.
In this class we actually sculpted the shapes instead of extruding or transforming a regular shape, so that was pretty neat to learn. We also used the pair tools as opposed to our normal materials color methods. I’m really learning a lot with this course, which is really great!
Well, I decided to take another course on Udemy. I wanted to branch out a little bit from my usual routine and learn something that I’m not really familiar with. So, I decided to take a course on 3D modeling. There are a lot of options out there, but I decided to settle on this one: https://www.udemy.com/course/blenderlowpoly/, The Ultimate Blender Low Poly Guide by Alex Cordebard, and I have to say, I’m loving it!
First, why I decided to take the course:
I was hoping it would help me model things for my 3D printer
I am also looking forward to some small 3D game design, but need models to do that.
I like the simpler, cartoon-ish style that has been a staple of “low-poly” 3D art.
Second, why I’m enjoying this course:
The instructor is so enthusiastic, it’s contagious!
Alex does a great job of explaining things in a way that is easy for a non-3D/non-artist to understand.
Everything is made from simple shapes.
The first “chapter” was about how to use Blender, which really helped me out. Now I’m on the second chapter, made up of several lessons, which show us how to make a low-poly living room scene. So far, so good! I can’t wait to see what this looks like when we’re done!
In the continuing OmniRom saga, another day with another fail:
[CODE]FAILED: /bin/bash -c “(mkdir -p out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/ && rm -f out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex ) && (find out/target/common/obj/APPS/CaptivePortalLogin_intermediates/ -maxdepth 1 -name \”classes*.dex\” | sort | xargs zip -0qjX out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex ) && (mv out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex.input ) && (rm -f out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex ) && (mkdir -p out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/ ) && (ANDROID_LOG_TAGS=\”*:e\” out/host/linux-x86/bin/dex2oatd –runtime-arg -Xms64m –runtime-arg -Xmx512m –runtime-arg -classpath –runtime-arg \”&\” –boot-image=out/target/product/h811/dex_bootjars/system/framework/boot.art –dex-file=out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex.input –dex-location=/system/app/CaptivePortalLogin/CaptivePortalLogin.apk –oat-file=out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex –android-root=out/target/product/h811/system –instruction-set=arm64 –instruction-set-variant=generic –instruction-set-features=default –include-patch-information –runtime-arg -Xnorelocate –no-generate-debug-info –abort-on-hard-verifier-error –no-inline-from=core-oj.jar –compile-pic ) && (rm out/target/product/h811/obj/APPS/CaptivePortalLogin_intermediates/oat/arm64/package.odex.input )”dex2oatd E 16505 16505 art/runtime/gc/heap.cc:324] Could not create image space with image file ‘out/target/product/h811/dex_bootjars/system/framework/boot.art’. Attempting to fall back to imageless running. Error was: Failed to load /system image ‘out/target/product/h811/dex_bootjars/system/framework/arm64/boot-telephony-ext.art’: Failed to mmap at expected address, mapped at 0x2b038dbfd000 instead of 0x70ddd000 : Requested region 0x70ddd000-0x70dde000 overlaps with existing map 0x70ddd000-0x70dde000 (/home/alaskalinuxuser/compile/20170727_aospa7/out/target/product/h811/dex_bootjars/system/framework/arm64/boot-telephony-ext.art)dex2oatd E 16505 16505 art/runtime/gc/heap.cc:324] 0x70ddd000-0x70dde000 rw- /home/alaskalinuxuser/compile/20170727_aospa7/out/target/product/h811/dex_bootjars/system/framework/arm64/boot-telephony-ext.art[/CODE]
It took me a while to figure this out, but the heart and soul of this problem lies with ART’s AOT (Ahead Of Time) preoptimization. Fortunately, I found a helpful tidbit on how to disable the preoptimization of this app. I did so here, in the /frameworks/base/packages/captiveportallogin/AndroidManifest.xml file:
I needed some dice for games that I am making. It was difficult to find free to use for anything dice icons online, so I ended up creating my own. I used Gimp to make the set. Nothing fancy, but may be useful for you. I just used a gradient fill and then put black dots on the squares for each side of the die.
I applied the Apache-2.0 license to these, so feel free to use or abuse them to the maximum extent possible!
Often I choose custom backgrounds for my ROMs that are specifically themed to that ROM, such as choosing a PacMan image to go with a PAC rom, or the logo of the ROM somehow embossed or colorized to match the custom ROM.
On occasion, however, I strike out in a completely new direction and pic a seemingly random piece of artwork. Usually this happens when I find a picture or drawing that jumps out at me. One such drawing is this mandelbox artwork from “TheQuietLearner”:
I have used his artwork before in my custom ROMs, such as Slim 5.1.1 and PAC ROM 6.0.1 for the Samsung Galaxy S4. If you want to check out more of his artwork, you can find it here, as well as read up on mandelbox, mandelbulb, fractal images, and more. If you like getting new, somewhat abstract, or mathematical artwork, then I highly recommend that you follow his site: