Skip to content

Commit 3d21569

Browse files
committed
➕ added timer shortcode for assets download link
1 parent e48330d commit 3d21569

7 files changed

Lines changed: 213 additions & 1 deletion

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Snake 3D Model FBX Blender 🐍
3+
description: Create and animate Snake Model with free assets.
4+
date: 2025-05-17
5+
image: "/images/blender/blender_render-1280x720.jpg"
6+
width: full
7+
authors:
8+
- name: Aryan
9+
link: https://github.com/simplearyan
10+
image: https://github.com/simplearyan.png
11+
tags:
12+
- Programming
13+
---
14+
15+
16+
{{< timer/timer title="Free Download" link="https://example.com/blog" timer="true" >}}
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
---
2+
title: Snake 3D Model FBX Blender 🐍
3+
description: Create and animate Snake Model with free assets.
4+
date: 2025-05-17
5+
image: "/images/blender/blender_render-1280x720.jpg"
6+
width: full
7+
authors:
8+
- name: Aryan
9+
link: https://github.com/simplearyan
10+
image: https://github.com/simplearyan.png
11+
tags:
12+
- Blender
13+
---
14+
15+
## Hey Blender Fans! 👋
16+
17+
Want to make an **amazing robotic arm** in Blender, complete with a working claw and smooth animation? Let’s break it down step by step, using plenty of emojis to make it super easy!
18+
19+
### 1. Set Up Your Workspace 🧹
20+
21+
- **Clear the scene:**
22+
Press **A** to select all, then **Delete** to start fresh.
23+
- **Add a cylinder:**
24+
Press **Shift + A****Mesh → Cylinder**. In the popup, set **Vertices: 20**.
25+
- **Hollow it out:**
26+
Go to **Edit Mode** (**Tab**), select the top and bottom faces, press **X**, and delete them.
27+
- **Duplicate for segments:**
28+
Press **A** to select all, then **Shift + D** to duplicate. Move it along the Y-axis.
29+
- **Bend and split:**
30+
- Turn on **X-ray mode** (little grid icon or press **Alt + Z**).
31+
- Select edge loops, enable **Proportional Editing** (**O**), and move them on the Z-axis to bend.
32+
- When happy, press **P → By Loose Parts** to split into separate pieces.
33+
34+
35+
36+
### Blender Tutorial Assets 🧊
37+
38+
{{< timer/timer title="Free Download" link="/blog/blender/assets/download/" >}}
39+
40+
### 2. Add Details to the Arm 🛠️
41+
42+
- **Edit the first segment:**
43+
- In **Edit Mode**, add a **loop cut** (**Ctrl + R**), scale on Z, then **S → 0** to flatten for sharp edges.
44+
- **Bevel** edges (**Ctrl + B**).
45+
- Use **Alt + E → Extrude Faces Along Normals** for extra detail.
46+
- Select faces, press **I** to inset, then **Alt + E → Extrude Individual Faces** for more features.
47+
- **Smooth it out:**
48+
- Switch to **Object Mode**, right-click, and choose **Shade Smooth**.
49+
- Add a **Bevel Modifier** for extra polish.
50+
- In **Edit Mode**, scale and extrude loops for more shape.
51+
- Move the object so it sits on the grid, right-click, and **Set Origin to 3D Cursor**.
52+
- Repeat for the second segment, and add a **Solidify Modifier** if you want it thicker.
53+
54+
55+
### 3. Rigging \& IK Animation 🤖✨
56+
57+
- **Add an armature (bones):**
58+
Press **Shift + A → Armature**.
59+
- **See the bone:**
60+
In the **Object Data** tab (green bone icon), turn on **In Front**.
61+
- **Duplicate segments:**
62+
Use **Shift + D** to make 12 total segments.
63+
- **Place bones:**
64+
- Select the top segment, **Edit Mode**, select top loop, **Shift + S → Cursor to Selected**.
65+
- Go to armature, **Edit Mode**, select bone tip, **Shift + S → Selection to Cursor**.
66+
- Select the bone (**A**), right-click, **Subdivide**, set **Cuts: 11** (for 12 bones).
67+
- **Parent mesh to armature:**
68+
In **Object Mode**, select all mesh parts, then the armature last. Press **Ctrl + P → With Automatic Weights**.
69+
- **Test it:**
70+
Go to **Pose Mode** (**Ctrl + Tab**) and move a bone—your mesh should follow! 🎉
71+
72+
73+
#### Add Inverse Kinematics (IK) for Easy Animation 🎮
74+
75+
- **Make an IK controller:**
76+
- In armature’s **Edit Mode**, select the last bone, **Shift + D** to duplicate, then **Alt + P** to clear its parent.
77+
- **Add IK constraint:**
78+
- In **Pose Mode**, select the second-to-last bone, go to **Constraints** (chain icon), add **Inverse Kinematics**.
79+
- Set **Target** to your armature and **Bone** to your new IK controller.
80+
- Set **Chain Length: 12**.
81+
- **Try it out:**
82+
Move the IK bone in **Pose Mode**—the whole arm should follow! 😎
83+
84+
85+
### 4. Make the Robotic Claw 🦾
86+
87+
- **Add base shapes:**
88+
In **Object Mode**, add a **Cylinder** (scale it on Z for the base), then add a **Cube**.
89+
- **Shape the claw:**
90+
- In **Edit Mode** for the cube, scale it down tiny.
91+
- Press **F3**, search for **Merge by Distance** (leaves one vertex).
92+
- **Extrude** this vertex to form the claw.
93+
- **Add thickness:**
94+
- Add a **Skin Modifier**.
95+
- In **Edit Mode** with X-ray on, select a vertex, press **N**, adjust **X/Y radius** for thickness.
96+
- **Subdivide** the path to smooth it.
97+
- **Create claw bones:**
98+
In **Object Mode**, click **Create Armature** in Skin Modifier settings.
99+
- **Test the claw:**
100+
Go to **Pose Mode** for the claw armature and move the bone—the claw should move!
101+
102+
103+
### 5. Duplicate and Connect the Claw 🔄
104+
105+
- **Duplicate claws:**
106+
- Add an **Array Modifier** to the claw.
107+
- Turn off **Relative Offset**, turn on **Object Offset**, and pick an empty as the controller.
108+
- If things look weird, select your claw, **Ctrl + A → All Transforms**, then re-add the modifier.
109+
- Rotate the offset object on Z until your claws are spaced right.
110+
- **Move all claws at once:**
111+
In **Pose Mode** for the claw armature, move it—every claw follows!
112+
113+
114+
### 6. Combine Everything! 🤝
115+
116+
- **Parent the claw object:**
117+
In **Object Mode**, select the claw, then the main arm’s top piece, **Ctrl + P → Object**. Move it into place.
118+
- **Parent the claw armature to a bone:**
119+
- In **Pose Mode**, select the bone on the main arm you want to attach the claw to.
120+
- Go back to **Object Mode**, select the claw armature, then the main armature, **Ctrl + P → Bone**.
121+
- **Final test:**
122+
Move the IK bone on the main arm—the arm and claw move together!
123+
124+
125+
### 7. Render Your Robot! 📸
126+
127+
- **Add a ground plane:**
128+
Add a **Plane** under the arm.
129+
- **Switch to Rendered View:**
130+
Change viewport shading to **Rendered**.
131+
- **Lighting \& engine:**
132+
- Turn off **World Lighting**.
133+
- Switch from **Eevee** to **Cycles**.
134+
- If possible, use **GPU** for faster rendering.
135+
- **Materials:**
136+
Add metallic materials for a cool robotic look.
137+
138+
And you’re done! You’ve built, rigged, and animated a robotic arm in Blender, ready for any animation you dream up. If this helped, give it a like and subscribe for more Blender fun! 👍
139+
140+

content/blog/book/essential-grammar-in-use.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ excludeSearch: true
1111
width: nomral
1212
---
1313

14-
<img src="https://r2cdn.perplexity.ai/pplx-full-logo-primary-dark%402x.png" class="logo" width="120"/>
1514

1615
## Detailed Explanation and Structure of "Essential Grammar in Use" (4th Edition by Raymond Murphy)
1716

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{{ $title := .Get "title" }} {{ $link := .Get "link" }} {{ $timer := .Get
2+
"timer" | default "false" }} {{ if eq $timer "true" }}
3+
<button class="timer-btn" data-link="{{ $link }}">{{ $title }}</button>
4+
<span class="timer-label"></span>
5+
<script>
6+
(function () {
7+
var btns = document.querySelectorAll(".timer-btn");
8+
btns.forEach(function (btn) {
9+
if (btn.dataset.timerAttached) return;
10+
btn.dataset.timerAttached = "true";
11+
btn.addEventListener("click", function () {
12+
if (btn.disabled) return;
13+
btn.disabled = true;
14+
var label = btn.nextElementSibling;
15+
var countdown = 30;
16+
label.textContent = " Redirecting in " + countdown + "s...";
17+
var timer = setInterval(function () {
18+
countdown--;
19+
label.textContent = " Redirecting in " + countdown + "s...";
20+
if (countdown <= 0) {
21+
clearInterval(timer);
22+
window.location.href = btn.getAttribute("data-link");
23+
}
24+
}, 1000);
25+
});
26+
});
27+
})();
28+
</script>
29+
{{ else }}
30+
<a href="{{ $link }}" class="timer-btn"> {{ $title }} </a>
31+
{{ end }}
32+
33+
<style>
34+
.timer-btn {
35+
margin-top: 1.5rem;
36+
display: block;
37+
padding: 0.5em 1.2em;
38+
background: #007bff;
39+
color: #fff;
40+
border-radius: 4px;
41+
border: none;
42+
font-weight: bold;
43+
cursor: pointer;
44+
text-decoration: none;
45+
text-align: center;
46+
width: -webkit-fill-available;
47+
}
48+
.timer-btn:disabled {
49+
background: #aaa;
50+
cursor: not-allowed;
51+
}
52+
.timer-label {
53+
margin-left: 10px;
54+
color: #333;
55+
font-weight: bold;
56+
}
57+
</style>
146 KB
Loading
36.3 KB
Loading
9.99 KB
Loading

0 commit comments

Comments
 (0)