{
  "slug": "3d-model",
  "name": "3D Model",
  "category": "Design",
  "updated": "2026-11-04",
  "status": "Draf operasional; perlu tinjauan mentor dan uji pada aplikasi kelas",
  "app": "Blender",
  "sessionsPerLevel": 32,
  "duration": 60,
  "ages": [
    "SMP",
    "SMA"
  ],
  "setup": "SMP: Siapkan Blender versi yang diuji pada perangkat kelas; catat versi, renderer, serta waktu render uji kecil. Gunakan mouse atau emulasi navigasi yang sesuai. Uji simpan-buka .blend dan PNG; simpan tekstur serta keluaran pada folder terpisah. Untuk animasi, uji timeline dan render urutan PNG; untuk VFX siapkan plate kamera diam, Compositor, Video Sequencer, serta uji ekspor video pendek sebelum kelas. SMA: Siapkan Blender versi yang diuji pada perangkat kelas; catat versi, renderer, serta waktu render uji kecil. Gunakan mouse atau emulasi navigasi yang sesuai. Uji simpan-buka .blend dan PNG; simpan tekstur serta keluaran pada folder terpisah. Untuk animasi, uji timeline dan render urutan PNG; untuk VFX siapkan plate kamera diam, Compositor, Video Sequencer, serta uji ekspor video pendek sebelum kelas.",
  "placement": [
    "Pilih objek serta ubah transform",
    "Buat susunan tiga bentuk dengan skala masuk akal",
    "Terapkan dua material dan tentukan kamera",
    "Temukan objek yang melayang atau memotong dan perbaiki"
  ],
  "sources": [
    {
      "label": "Blender: panduan modeling, UV, sculpting, shader, serta animation",
      "url": "https://docs.blender.org/manual/en/latest/"
    },
    {
      "label": "Blender: VFX dan compositing",
      "url": "https://www.blender.org/features/vfx/"
    },
    {
      "label": "Blender: Shader Nodes",
      "url": "https://docs.blender.org/manual/en/latest/render/shader_nodes/index.html"
    },
    {
      "label": "Blender: Compositing",
      "url": "https://docs.blender.org/manual/en/latest/compositing/index.html"
    },
    {
      "label": "Blender: Video Sequencer",
      "url": "https://docs.blender.org/manual/en/latest/video_editing/index.html"
    }
  ],
  "paths": [
    {
      "id": "smp-pemula",
      "age": "SMP",
      "level": "pemula",
      "name": "SMP · Pemula",
      "entry": "Tidak memerlukan pengalaman 3D. Mulai dari navigasi serta seleksi, transform, Object/Edit Mode, dan penyimpanan; mentor menyesuaikan perangkat serta bantuan.",
      "target": "Menguasai navigasi serta penyimpanan Blender, membangun model dasar, menjelaskan pengaruh cahaya, dan membuat animasi transform pendek dengan sumber yang dapat direvisi.",
      "scope": "32 sesi × 1 jam per program; empat proyek × delapan sesi. Empat proyek: onboarding tool, basic modeling, lighting, lalu simple animation. Batasi 3–6 objek, model low-poly, dan animasi transform 2–3 detik tanpa rig.",
      "adaptation": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
      "projects": [
        {
          "name": "Langkah Pertama di Blender",
          "topic": "Onboarding tool",
          "out": "Tiga bentuk bernama di atas lantai, kamera dan satu render kecil.",
          "art": "model3d-smp-pemula-p1-ai.png",
          "steps": [
            "Di Blender, latih orbit, pan, zoom, lalu Frame Selected pada kubus; pilih objek lewat viewport dan Outliner lalu jelaskan Object Mode",
            "Di Blender, coba Move, Rotate, Scale dengan pembatas X/Y/Z pada tiga bentuk; duplikasi bentuk lalu bandingkan Delete, Undo, dan perpindahan salinan",
            "Di Blender, beri nama tiga objek dan kelompokkan pada satu collection; tambahkan plane lalu susun tiga bentuk tanpa melayang atau memotong",
            "Di Blender, atur kamera, satu lampu, dan render uji kecil ke PNG; simpan .blend, buka ulang, ubah satu transform, lalu presentasikan PNG"
          ],
          "checks": [
            "Tiga bentuk bernama di atas lantai, kamera dan satu render kecil.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Objek hilang dari pandangan karena navigasi tidak terkontrol",
            "Transform mengubah objek yang salah",
            "Nama serta koleksi tidak menunjukkan fungsi objek",
            "Render berbeda dari kamera yang dipilih"
          ],
          "recipe": "Versi minimum: Tiga bentuk bernama di atas lantai, kamera dan satu render kecil. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, latih orbit, pan, zoom, lalu Frame Selected pada kubus; pilih objek lewat viewport dan Outliner lalu jelaskan Object Mode. 2. Di Blender, coba Move, Rotate, Scale dengan pembatas X/Y/Z pada tiga bentuk; duplikasi bentuk lalu bandingkan Delete, Undo, dan perpindahan salinan. 3. Di Blender, beri nama tiga objek dan kelompokkan pada satu collection; tambahkan plane lalu susun tiga bentuk tanpa melayang atau memotong. 4. Di Blender, atur kamera, satu lampu, dan render uji kecil ke PNG; simpan .blend, buka ulang, ubah satu transform, lalu presentasikan PNG. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Mulai dari scene kosong sederhana. Susun cube, sphere, dan cylinder; pakai satu kamera serta lampu bawaan atau Area Light. Fokus pada navigasi dan pengelolaan objek, belum detail mesh.",
          "number": 1,
          "start": 1,
          "end": 8,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-pemula-p1-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Tiga bentuk bernama di atas lantai, kamera dan satu render kecil.",
          "minimumChecks": [
            "Tiga bentuk bernama di atas lantai, kamera dan satu render kecil.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Langkah Pertama di Blender. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Hanya objek yang dituju dipilih dan siswa dapat kembali ke tampilan semula",
            "Salinan dapat diubah tanpa mengubah objek asal",
            "Objek berpijak dan susunan terbaca dari dua arah",
            "Sumber dapat direvisi dan siswa membedakan viewport, kamera, serta hasil render; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, latih orbit, pan, zoom, lalu Frame Selected pada kubus; pilih objek lewat viewport dan Outliner lalu jelaskan Object Mode. 2. Di Blender, coba Move, Rotate, Scale dengan pembatas X/Y/Z pada tiga bentuk; duplikasi bentuk lalu bandingkan Delete, Undo, dan perpindahan salinan. 3. Di Blender, beri nama tiga objek dan kelompokkan pada satu collection; tambahkan plane lalu susun tiga bentuk tanpa melayang atau memotong. 4. Di Blender, atur kamera, satu lampu, dan render uji kecil ke PNG; simpan .blend, buka ulang, ubah satu transform, lalu presentasikan PNG. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Mulai dari scene kosong sederhana. Susun cube, sphere, dan cylinder; pakai satu kamera serta lampu bawaan atau Area Light. Fokus pada navigasi dan pengelolaan objek, belum detail mesh."
        },
        {
          "name": "Robot dari Bentuk Dasar",
          "topic": "Basic modeling",
          "out": "Robot low-poly dari sedikit bentuk, satu Extrude dan proporsi yang dapat direvisi.",
          "art": "model3d-smp-pemula-p2-ai.png",
          "steps": [
            "Di Blender, buat sketsa depan dan tandai lima bagian besar sebelum modeling; susun kepala, tubuh, serta kaki dari primitives tanpa detail",
            "Di Blender, masuk Edit Mode pada salinan kubus lalu seleksi tiga jenis elemen; bentuk satu lengan dari face lalu cek sambungan setelah Extrude",
            "Di Blender, buat panel badan dengan Inset dan kedalaman kecil; tambahkan bevel kecil lalu bandingkan proporsi kedua sisi robot",
            "Di Blender, namai bagian, batasi tiga material, dan periksa persinggungan; render robot, buka .blend, lalu revisi satu bentuk dari masukan"
          ],
          "checks": [
            "Robot low-poly dari sedikit bentuk, satu Extrude dan proporsi yang dapat direvisi.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Siluet tidak menunjukkan kepala, badan, dan kaki",
            "Extrude menghasilkan bagian bertumpuk tanpa sengaja",
            "Skala bagian atau bevel merusak proporsi",
            "Objek terpotong atau melayang dalam render"
          ],
          "recipe": "Versi minimum: Robot low-poly dari sedikit bentuk, satu Extrude dan proporsi yang dapat direvisi. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buat sketsa depan dan tandai lima bagian besar sebelum modeling; susun kepala, tubuh, serta kaki dari primitives tanpa detail. 2. Di Blender, masuk Edit Mode pada salinan kubus lalu seleksi tiga jenis elemen; bentuk satu lengan dari face lalu cek sambungan setelah Extrude. 3. Di Blender, buat panel badan dengan Inset dan kedalaman kecil; tambahkan bevel kecil lalu bandingkan proporsi kedua sisi robot. 4. Di Blender, namai bagian, batasi tiga material, dan periksa persinggungan; render robot, buka .blend, lalu revisi satu bentuk dari masukan. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan cube untuk badan serta kaki dan cylinder untuk sendi. Ajarkan Object/Edit Mode, vertex-edge-face, Extrude, Inset, dan Bevel kecil pada objek terpilih; hindari rig atau anatomi.",
          "number": 2,
          "start": 9,
          "end": 16,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-pemula-p2-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Robot low-poly dari sedikit bentuk, satu Extrude dan proporsi yang dapat direvisi.",
          "minimumChecks": [
            "Robot low-poly dari sedikit bentuk, satu Extrude dan proporsi yang dapat direvisi.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Robot dari Bentuk Dasar. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Robot dikenali melalui siluet dari depan dan samping",
            "Tidak ada face ganda akibat Extrude yang dibatalkan setengah",
            "Bevel tidak menelan bentuk dan pasangan bagian seimbang",
            "Model terbaca, mesh inti dapat diedit, dan siswa menjelaskan satu alat modeling; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buat sketsa depan dan tandai lima bagian besar sebelum modeling; susun kepala, tubuh, serta kaki dari primitives tanpa detail. 2. Di Blender, masuk Edit Mode pada salinan kubus lalu seleksi tiga jenis elemen; bentuk satu lengan dari face lalu cek sambungan setelah Extrude. 3. Di Blender, buat panel badan dengan Inset dan kedalaman kecil; tambahkan bevel kecil lalu bandingkan proporsi kedua sisi robot. 4. Di Blender, namai bagian, batasi tiga material, dan periksa persinggungan; render robot, buka .blend, lalu revisi satu bentuk dari masukan. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan cube untuk badan serta kaki dan cylinder untuk sendi. Ajarkan Object/Edit Mode, vertex-edge-face, Extrude, Inset, dan Bevel kecil pada objek terpilih; hindari rig atau anatomi."
        },
        {
          "name": "Studio Cahaya Mini",
          "topic": "Lighting dasar",
          "out": "Dua render objek yang sama dengan satu perubahan lampu serta alasan perbedaannya.",
          "art": "model3d-smp-pemula-p3-ai.png",
          "steps": [
            "Di Blender, gambar arah cahaya dan bidang terang pada kubus serta sphere; buat objek, lantai, kamera, dan satu Area Light",
            "Di Blender, pindahkan lampu ke dua sisi dan simpan render uji berlabel; bandingkan ukuran Area Light sambil menjaga energi uji yang dicatat",
            "Di Blender, ubah energi lampu bertahap lalu pilih hasil dengan bentuk terbaca; tambahkan lampu pengisi lemah lalu bandingkan dengan versi tanpa fill",
            "Di Blender, buat versi cerah dan tenang dengan kamera serta objek yang sama; serahkan dua PNG, diagram lampu, serta .blend dan satu revisi"
          ],
          "checks": [
            "Dua render objek yang sama dengan satu perubahan lampu serta alasan perbedaannya.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Perbandingan cahaya juga mengubah kamera sehingga tidak adil",
            "Arah shadow tidak sesuai posisi lampu",
            "Objek terlalu gelap atau highlight kehilangan bentuk",
            "Render final tidak menyertakan bukti perbandingan"
          ],
          "recipe": "Versi minimum: Dua render objek yang sama dengan satu perubahan lampu serta alasan perbedaannya. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar arah cahaya dan bidang terang pada kubus serta sphere; buat objek, lantai, kamera, dan satu Area Light. 2. Di Blender, pindahkan lampu ke dua sisi dan simpan render uji berlabel; bandingkan ukuran Area Light sambil menjaga energi uji yang dicatat. 3. Di Blender, ubah energi lampu bertahap lalu pilih hasil dengan bentuk terbaca; tambahkan lampu pengisi lemah lalu bandingkan dengan versi tanpa fill. 4. Di Blender, buat versi cerah dan tenang dengan kamera serta objek yang sama; serahkan dua PNG, diagram lampu, serta .blend dan satu revisi. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Pakai tiga objek sederhana agar geometri tetap konstan. Ubah satu variabel cahaya per percobaan. Gunakan Area Light, fill secukupnya, kamera tetap, dan render kecil tanpa mengejar fotorealisme.",
          "number": 3,
          "start": 17,
          "end": 24,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-pemula-p3-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Dua render objek yang sama dengan satu perubahan lampu serta alasan perbedaannya.",
          "minimumChecks": [
            "Dua render objek yang sama dengan satu perubahan lampu serta alasan perbedaannya.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Studio Cahaya Mini. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Kamera serta geometri sama untuk seluruh percobaan",
            "Siswa menunjukkan perubahan ketajaman shadow",
            "Fill membantu keterbacaan tanpa menghilangkan arah cahaya utama",
            "Siswa menjelaskan pengaruh arah, ukuran, serta intensitas lampu; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar arah cahaya dan bidang terang pada kubus serta sphere; buat objek, lantai, kamera, dan satu Area Light. 2. Di Blender, pindahkan lampu ke dua sisi dan simpan render uji berlabel; bandingkan ukuran Area Light sambil menjaga energi uji yang dicatat. 3. Di Blender, ubah energi lampu bertahap lalu pilih hasil dengan bentuk terbaca; tambahkan lampu pengisi lemah lalu bandingkan dengan versi tanpa fill. 4. Di Blender, buat versi cerah dan tenang dengan kamera serta objek yang sama; serahkan dua PNG, diagram lampu, serta .blend dan satu revisi. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Pakai tiga objek sederhana agar geometri tetap konstan. Ubah satu variabel cahaya per percobaan. Gunakan Area Light, fill secukupnya, kamera tetap, dan render kecil tanpa mengejar fotorealisme."
        },
        {
          "name": "Kotak Bergerak",
          "topic": "Simple animation",
          "out": "Animasi transform satu objek 2 detik dengan awal–tengah–akhir dan kontak lantai.",
          "art": "model3d-smp-pemula-p4-ai.png",
          "steps": [
            "Di Blender, gambar pose awal, puncak, dan akhir dengan durasi 2–3 detik; tetapkan 24 fps, rentang pendek, lantai, serta objek dengan origin tepat",
            "Di Blender, pasang Location keyframe pada tiga frame utama lalu putar preview; ubah waktu pose puncak tanpa mengubah bentuk model",
            "Di Blender, bandingkan Linear dan Bezier lalu rapikan satu kurva di Graph Editor; periksa frame awal, puncak, dan mendarat lalu perbaiki posisi",
            "Di Blender, render frame uji awal-tengah-akhir lalu urutan PNG resolusi kecil; putar preview atau urutan gambar dan serahkan .blend serta catatan timing"
          ],
          "checks": [
            "Animasi transform satu objek 2 detik dengan awal–tengah–akhir dan kontak lantai.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Durasi tidak cocok karena frame rate dan rentang frame berbeda",
            "Keyframe tersimpan pada objek atau properti yang salah",
            "Gerak menembus lantai atau terasa melayang",
            "Berkas urutan gambar tidak lengkap atau tersimpan menimpa sumber"
          ],
          "recipe": "Versi minimum: Animasi transform satu objek 2 detik dengan awal–tengah–akhir dan kontak lantai. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar pose awal, puncak, dan akhir dengan durasi 2–3 detik; tetapkan 24 fps, rentang pendek, lantai, serta objek dengan origin tepat. 2. Di Blender, pasang Location keyframe pada tiga frame utama lalu putar preview; ubah waktu pose puncak tanpa mengubah bentuk model. 3. Di Blender, bandingkan Linear dan Bezier lalu rapikan satu kurva di Graph Editor; periksa frame awal, puncak, dan mendarat lalu perbaiki posisi. 4. Di Blender, render frame uji awal-tengah-akhir lalu urutan PNG resolusi kecil; putar preview atau urutan gambar dan serahkan .blend serta catatan timing. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Animasi cukup satu objek bergerak di atas lantai. Gunakan Location/Rotation, timeline, keyframe, interpolasi dan Graph Editor dasar; tanpa armature. Render uji kecil beberapa frame dahulu lalu urutan PNG.",
          "number": 4,
          "start": 25,
          "end": 32,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "urutan PNG animasi, preview, dan catatan fps/durasi",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-pemula-p4-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Animasi transform satu objek 2 detik dengan awal–tengah–akhir dan kontak lantai.",
          "minimumChecks": [
            "Animasi transform satu objek 2 detik dengan awal–tengah–akhir dan kontak lantai.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Kotak Bergerak. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Jumlah frame sesuai durasi dan objek mempunyai posisi awal",
            "Perubahan timing menghasilkan gerak yang dapat dibandingkan",
            "Kotak tidak menembus lantai sepanjang aksi",
            "Gerak selesai, durasi sesuai, dan siswa menjelaskan satu revisi timing; sumber .blend dan urutan PNG animasi, preview, dan catatan fps/durasi tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar pose awal, puncak, dan akhir dengan durasi 2–3 detik; tetapkan 24 fps, rentang pendek, lantai, serta objek dengan origin tepat. 2. Di Blender, pasang Location keyframe pada tiga frame utama lalu putar preview; ubah waktu pose puncak tanpa mengubah bentuk model. 3. Di Blender, bandingkan Linear dan Bezier lalu rapikan satu kurva di Graph Editor; periksa frame awal, puncak, dan mendarat lalu perbaiki posisi. 4. Di Blender, render frame uji awal-tengah-akhir lalu urutan PNG resolusi kecil; putar preview atau urutan gambar dan serahkan .blend serta catatan timing. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Animasi cukup satu objek bergerak di atas lantai. Gunakan Location/Rotation, timeline, keyframe, interpolasi dan Graph Editor dasar; tanpa armature. Render uji kecil beberapa frame dahulu lalu urutan PNG."
        }
      ],
      "sessions": [
        {
          "number": 1,
          "project": 1,
          "phase": 1,
          "title": "Navigasi viewport",
          "target": "Menerapkan navigasi viewport dan menunjukkan hasil yang dapat diperiksa: kubus dapat ditemukan kembali tanpa memindahkan seluruh scene",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: latih orbit, pan, zoom, lalu Frame Selected pada kubus. Tunjukkan pembanding dengan masalah objek hilang dari pandangan karena navigasi tidak terkontrol",
          "practice": "Di Blender, latih orbit, pan, zoom, lalu Frame Selected pada kubus",
          "check": "Kubus dapat ditemukan kembali tanpa memindahkan seluruh scene",
          "fault": "Objek hilang dari pandangan karena navigasi tidak terkontrol",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S01-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:navigation",
          "explanation": [
            "Orbit mengubah sudut pandang, pan menggeser pandangan dan zoom mendekatkan tampilan. Ketiganya tidak harus mengubah posisi objek.",
            "Gunakan Frame Selected untuk menemukan objek. Orbit ke depan dan samping lalu kembali tanpa memindahkan mesh."
          ],
          "sessionType": "onboarding",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "onboarding",
            "label": "Orientasi alat",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 10
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 20
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 10,
            "guidedMinutes": 10,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Sumber latihan baru; perangkat siap sebelum kelas.",
            "minimum": "Di Blender, latih orbit, pan, zoom, lalu Frame Selected pada kubus",
            "understanding": "Tutup lalu buka kembali sumber, ulangi satu tindakan tanpa mengikuti klik mentor dan jelaskan apa yang berubah.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 5,
              "max": 10,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Belajar orientasi alat dan simpan-buka ulang.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 2,
          "project": 1,
          "phase": 1,
          "title": "Seleksi dan Object Mode",
          "target": "Menerapkan seleksi dan Object Mode dan menunjukkan hasil yang dapat diperiksa: hanya objek yang dituju dipilih dan siswa dapat kembali ke tampilan semula",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pilih objek lewat viewport dan Outliner lalu jelaskan Object Mode. Tunjukkan pembanding dengan masalah objek hilang dari pandangan karena navigasi tidak terkontrol",
          "practice": "Di Blender, pilih objek lewat viewport dan Outliner lalu jelaskan Object Mode",
          "check": "Hanya objek yang dituju dipilih dan siswa dapat kembali ke tampilan semula",
          "fault": "Objek hilang dari pandangan karena navigasi tidak terkontrol",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S02-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:mesh",
          "explanation": [
            "Object Mode memilih objek utuh; Edit Mode mengubah mesh di dalamnya. Vertex adalah titik, edge menghubungkan titik dan face membentuk permukaan.",
            "Pilih satu vertex, edge lalu face pada kubus. Ubah satu bagian di Edit Mode dan bandingkan dengan memindahkan objek utuh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pilih objek lewat viewport dan Outliner lalu jelaskan Object Mode",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 3,
          "project": 1,
          "phase": 2,
          "title": "Transform pada sumbu",
          "target": "Menerapkan transform pada sumbu dan menunjukkan hasil yang dapat diperiksa: perubahan satu sumbu dapat diprediksi dan diulang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: coba Move, Rotate, Scale dengan pembatas X/Y/Z pada tiga bentuk. Tunjukkan pembanding dengan masalah transform mengubah objek yang salah",
          "practice": "Di Blender, coba Move, Rotate, Scale dengan pembatas X/Y/Z pada tiga bentuk",
          "check": "Perubahan satu sumbu dapat diprediksi dan diulang",
          "fault": "Transform mengubah objek yang salah",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S03-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:transform",
          "explanation": [
            "Transform objek meliputi posisi, rotasi dan skala pada X, Y, Z. Skala objek berbeda dari ukuran mesh di Edit Mode.",
            "Batasi perubahan pada satu sumbu. Periksa dimensi dan pijakan; sebelum modifier atau UV, periksa apakah skala perlu diterapkan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, coba Move, Rotate, Scale dengan pembatas X/Y/Z pada tiga bentuk",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 4,
          "project": 1,
          "phase": 2,
          "title": "Duplikasi dan Undo",
          "target": "Menerapkan duplikasi dan Undo dan menunjukkan hasil yang dapat diperiksa: salinan dapat diubah tanpa mengubah objek asal",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: duplikasi bentuk lalu bandingkan Delete, Undo, dan perpindahan salinan. Tunjukkan pembanding dengan masalah transform mengubah objek yang salah",
          "practice": "Di Blender, duplikasi bentuk lalu bandingkan Delete, Undo, dan perpindahan salinan",
          "check": "Salinan dapat diubah tanpa mengubah objek asal",
          "fault": "Transform mengubah objek yang salah",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S04-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:rhythm",
          "explanation": [
            "Pengulangan membentuk keteraturan. Variasi jarak, ukuran atau arah menciptakan ritme dan dapat menonjolkan satu unsur.",
            "Rapikan satu unsur sebelum menggandakannya. Bandingkan jarak tetap dengan jarak bervariasi dan jelaskan bagian yang menjadi dominan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, duplikasi bentuk lalu bandingkan Delete, Undo, dan perpindahan salinan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 5,
          "project": 1,
          "phase": 3,
          "title": "Outliner dan nama objek",
          "target": "Menerapkan outliner dan nama objek dan menunjukkan hasil yang dapat diperiksa: objek dapat ditemukan berdasarkan nama dan tidak ada salinan tak disengaja",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: beri nama tiga objek dan kelompokkan pada satu collection. Tunjukkan pembanding dengan masalah nama serta koleksi tidak menunjukkan fungsi objek",
          "practice": "Di Blender, beri nama tiga objek dan kelompokkan pada satu collection",
          "check": "Objek dapat ditemukan berdasarkan nama dan tidak ada salinan tak disengaja",
          "fault": "Nama serta koleksi tidak menunjukkan fungsi objek",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S05-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:outliner",
          "explanation": [
            "Outliner mengatur objek dan collection. Sumber .blend dapat bergantung pada gambar atau media di luar berkas, sehingga folder perlu disiapkan untuk dibuka ulang.",
            "Beri nama objek sesuai fungsi, kemas aset yang diperlukan dan buka salinan proyek dari folder lain untuk menemukan media hilang."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, beri nama tiga objek dan kelompokkan pada satu collection",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 6,
          "project": 1,
          "phase": 3,
          "title": "Bidang lantai dan susunan",
          "target": "Menerapkan bidang lantai dan susunan dan menunjukkan hasil yang dapat diperiksa: objek berpijak dan susunan terbaca dari dua arah",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tambahkan plane lalu susun tiga bentuk tanpa melayang atau memotong. Tunjukkan pembanding dengan masalah nama serta koleksi tidak menunjukkan fungsi objek",
          "practice": "Di Blender, tambahkan plane lalu susun tiga bentuk tanpa melayang atau memotong",
          "check": "Objek berpijak dan susunan terbaca dari dua arah",
          "fault": "Nama serta koleksi tidak menunjukkan fungsi objek",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S06-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tambahkan plane lalu susun tiga bentuk tanpa melayang atau memotong",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 7,
          "project": 1,
          "phase": 4,
          "title": "Kamera dan render pertama",
          "target": "Menerapkan kamera dan render pertama dan menunjukkan hasil yang dapat diperiksa: objek utama masuk bingkai dan render tersimpan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur kamera, satu lampu, dan render uji kecil ke PNG. Tunjukkan pembanding dengan masalah render berbeda dari kamera yang dipilih",
          "practice": "Di Blender, atur kamera, satu lampu, dan render uji kecil ke PNG",
          "check": "Objek utama masuk bingkai dan render tersimpan",
          "fault": "Render berbeda dari kamera yang dipilih",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S07-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:camera",
          "explanation": [
            "Kamera menentukan apa yang terlihat pada render. Orthographic menjaga ukuran terhadap jarak; Perspective memberi pengecilan benda yang lebih jauh.",
            "Pilih proyeksi sesuai brief dan kunci kamera saat menguji cahaya. Periksa objek tidak terpotong dan hubungan ruang tetap terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur kamera, satu lampu, dan render uji kecil ke PNG",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Ada waktu mesin yang bergantung perangkat; gunakan preview kecil."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": "Periksa satu frame/preview kecil dalam kelas. Render penuh boleh berjalan setelah sumber dan setelan diperiksa; lama proses mesin tidak menentukan kelulusan.",
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 8,
          "project": 1,
          "phase": 4,
          "title": "Presentasi: Langkah Pertama di Blender",
          "target": "Menerapkan simpan dan buka sumber dan menunjukkan hasil yang dapat diperiksa: sumber dapat direvisi dan siswa membedakan viewport, kamera, serta hasil render",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: simpan .blend, buka ulang, ubah satu transform, lalu presentasikan PNG. Tunjukkan pembanding dengan masalah render berbeda dari kamera yang dipilih",
          "practice": "Di Blender, simpan .blend, buka ulang, ubah satu transform, lalu presentasikan PNG Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Sumber dapat direvisi dan siswa membedakan viewport, kamera, serta hasil render",
          "fault": "Render berbeda dari kamera yang dipilih",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-pemula-S08-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding tool. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, simpan .blend, buka ulang, ubah satu transform, lalu presentasikan PNG Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 9,
          "project": 2,
          "phase": 1,
          "title": "Pecah referensi robot",
          "target": "Menerapkan pecah referensi robot dan menunjukkan hasil yang dapat diperiksa: bagian model mempunyai fungsi dan ukuran perkiraan",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat sketsa depan dan tandai lima bagian besar sebelum modeling. Tunjukkan pembanding dengan masalah siluet tidak menunjukkan kepala, badan, dan kaki",
          "practice": "Di Blender, buat sketsa depan dan tandai lima bagian besar sebelum modeling",
          "check": "Bagian model mempunyai fungsi dan ukuran perkiraan",
          "fault": "Siluet tidak menunjukkan kepala, badan, dan kaki",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S09-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, buat sketsa depan dan tandai lima bagian besar sebelum modeling",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 10,
          "project": 2,
          "phase": 1,
          "title": "Blockout robot",
          "target": "Menerapkan blockout robot dan menunjukkan hasil yang dapat diperiksa: robot dikenali melalui siluet dari depan dan samping",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: susun kepala, tubuh, serta kaki dari primitives tanpa detail. Tunjukkan pembanding dengan masalah siluet tidak menunjukkan kepala, badan, dan kaki",
          "practice": "Di Blender, susun kepala, tubuh, serta kaki dari primitives tanpa detail",
          "check": "Robot dikenali melalui siluet dari depan dan samping",
          "fault": "Siluet tidak menunjukkan kepala, badan, dan kaki",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S10-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, susun kepala, tubuh, serta kaki dari primitives tanpa detail",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 11,
          "project": 2,
          "phase": 2,
          "title": "Vertex edge dan face",
          "target": "Menerapkan vertex edge dan face dan menunjukkan hasil yang dapat diperiksa: siswa membedakan perubahan mesh dan transform objek",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: masuk Edit Mode pada salinan kubus lalu seleksi tiga jenis elemen. Tunjukkan pembanding dengan masalah extrude menghasilkan bagian bertumpuk tanpa sengaja",
          "practice": "Di Blender, masuk Edit Mode pada salinan kubus lalu seleksi tiga jenis elemen",
          "check": "Siswa membedakan perubahan mesh dan transform objek",
          "fault": "Extrude menghasilkan bagian bertumpuk tanpa sengaja",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S11-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:mesh",
          "explanation": [
            "Object Mode memilih objek utuh; Edit Mode mengubah mesh di dalamnya. Vertex adalah titik, edge menghubungkan titik dan face membentuk permukaan.",
            "Pilih satu vertex, edge lalu face pada kubus. Ubah satu bagian di Edit Mode dan bandingkan dengan memindahkan objek utuh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, masuk Edit Mode pada salinan kubus lalu seleksi tiga jenis elemen",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 12,
          "project": 2,
          "phase": 2,
          "title": "Extrude satu anggota tubuh",
          "target": "Menerapkan extrude satu anggota tubuh dan menunjukkan hasil yang dapat diperiksa: tidak ada face ganda akibat Extrude yang dibatalkan setengah",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bentuk satu lengan dari face lalu cek sambungan setelah Extrude. Tunjukkan pembanding dengan masalah extrude menghasilkan bagian bertumpuk tanpa sengaja",
          "practice": "Di Blender, bentuk satu lengan dari face lalu cek sambungan setelah Extrude",
          "check": "Tidak ada face ganda akibat Extrude yang dibatalkan setengah",
          "fault": "Extrude menghasilkan bagian bertumpuk tanpa sengaja",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S12-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:model",
          "explanation": [
            "Extrude menambah geometri dari bagian terpilih, Inset membuat bidang di dalam face dan Bevel memotong tepi. Modifier perlu diperiksa pengaruhnya pada bentuk.",
            "Gunakan satu operasi dahulu. Periksa dari tiga sudut; hindari face tumpang tindih dan detail yang tidak membantu siluet."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bentuk satu lengan dari face lalu cek sambungan setelah Extrude",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 13,
          "project": 2,
          "phase": 3,
          "title": "Inset panel sederhana",
          "target": "Menerapkan inset panel sederhana dan menunjukkan hasil yang dapat diperiksa: panel mempunyai batas yang jelas tanpa lubang tak disengaja",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat panel badan dengan Inset dan kedalaman kecil. Tunjukkan pembanding dengan masalah skala bagian atau bevel merusak proporsi",
          "practice": "Di Blender, buat panel badan dengan Inset dan kedalaman kecil",
          "check": "Panel mempunyai batas yang jelas tanpa lubang tak disengaja",
          "fault": "Skala bagian atau bevel merusak proporsi",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S13-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:model",
          "explanation": [
            "Extrude menambah geometri dari bagian terpilih, Inset membuat bidang di dalam face dan Bevel memotong tepi. Modifier perlu diperiksa pengaruhnya pada bentuk.",
            "Gunakan satu operasi dahulu. Periksa dari tiga sudut; hindari face tumpang tindih dan detail yang tidak membantu siluet."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat panel badan dengan Inset dan kedalaman kecil",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 14,
          "project": 2,
          "phase": 3,
          "title": "Bevel dan proporsi",
          "target": "Menerapkan bevel dan proporsi dan menunjukkan hasil yang dapat diperiksa: bevel tidak menelan bentuk dan pasangan bagian seimbang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tambahkan bevel kecil lalu bandingkan proporsi kedua sisi robot. Tunjukkan pembanding dengan masalah skala bagian atau bevel merusak proporsi",
          "practice": "Di Blender, tambahkan bevel kecil lalu bandingkan proporsi kedua sisi robot",
          "check": "Bevel tidak menelan bentuk dan pasangan bagian seimbang",
          "fault": "Skala bagian atau bevel merusak proporsi",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S14-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:model",
          "explanation": [
            "Extrude menambah geometri dari bagian terpilih, Inset membuat bidang di dalam face dan Bevel memotong tepi. Modifier perlu diperiksa pengaruhnya pada bentuk.",
            "Gunakan satu operasi dahulu. Periksa dari tiga sudut; hindari face tumpang tindih dan detail yang tidak membantu siluet."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tambahkan bevel kecil lalu bandingkan proporsi kedua sisi robot",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 15,
          "project": 2,
          "phase": 4,
          "title": "Rapikan dan beri warna",
          "target": "Menerapkan rapikan dan beri warna dan menunjukkan hasil yang dapat diperiksa: tidak ada bagian melayang dan susunan objek mudah dicari",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: namai bagian, batasi tiga material, dan periksa persinggungan. Tunjukkan pembanding dengan masalah objek terpotong atau melayang dalam render",
          "practice": "Di Blender, namai bagian, batasi tiga material, dan periksa persinggungan",
          "check": "Tidak ada bagian melayang dan susunan objek mudah dicari",
          "fault": "Objek terpotong atau melayang dalam render",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S15-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, namai bagian, batasi tiga material, dan periksa persinggungan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 16,
          "project": 2,
          "phase": 4,
          "title": "Presentasi: Robot dari Bentuk Dasar",
          "target": "Menerapkan tinjau model dari tiga arah dan menunjukkan hasil yang dapat diperiksa: model terbaca, mesh inti dapat diedit, dan siswa menjelaskan satu alat modeling",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: render robot, buka .blend, lalu revisi satu bentuk dari masukan. Tunjukkan pembanding dengan masalah objek terpotong atau melayang dalam render",
          "practice": "Di Blender, render robot, buka .blend, lalu revisi satu bentuk dari masukan Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Model terbaca, mesh inti dapat diedit, dan siswa menjelaskan satu alat modeling",
          "fault": "Objek terpotong atau melayang dalam render",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-pemula-S16-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Basic modeling. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, render robot, buka .blend, lalu revisi satu bentuk dari masukan Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 17,
          "project": 3,
          "phase": 1,
          "title": "Amati bentuk lewat terang gelap",
          "target": "Menerapkan amati bentuk lewat terang gelap dan menunjukkan hasil yang dapat diperiksa: rencana membedakan sisi terang, sisi gelap, dan bayangan jatuh",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: gambar arah cahaya dan bidang terang pada kubus serta sphere. Tunjukkan pembanding dengan masalah perbandingan cahaya juga mengubah kamera sehingga tidak adil",
          "practice": "Di Blender, gambar arah cahaya dan bidang terang pada kubus serta sphere",
          "check": "Rencana membedakan sisi terang, sisi gelap, dan bayangan jatuh",
          "fault": "Perbandingan cahaya juga mengubah kamera sehingga tidak adil",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S17-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:value",
          "explanation": [
            "Value adalah tingkat terang–gelap. Bentuk dan fokus dapat hilang walaupun warnanya berbeda jika value terlalu mirip.",
            "Gunakan tiga kelompok: terang, sedang dan gelap. Periksa bentuk pada tampilan kecil atau abu-abu sebelum menambah detail."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, gambar arah cahaya dan bidang terang pada kubus serta sphere",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 18,
          "project": 3,
          "phase": 1,
          "title": "Susun studio tetap",
          "target": "Menerapkan susun studio tetap dan menunjukkan hasil yang dapat diperiksa: kamera serta geometri sama untuk seluruh percobaan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat objek, lantai, kamera, dan satu Area Light. Tunjukkan pembanding dengan masalah perbandingan cahaya juga mengubah kamera sehingga tidak adil",
          "practice": "Di Blender, buat objek, lantai, kamera, dan satu Area Light",
          "check": "Kamera serta geometri sama untuk seluruh percobaan",
          "fault": "Perbandingan cahaya juga mengubah kamera sehingga tidak adil",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S18-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat objek, lantai, kamera, dan satu Area Light",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 19,
          "project": 3,
          "phase": 2,
          "title": "Arah dan posisi lampu",
          "target": "Menerapkan arah dan posisi lampu dan menunjukkan hasil yang dapat diperiksa: bayangan bergerak sesuai arah cahaya",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pindahkan lampu ke dua sisi dan simpan render uji berlabel. Tunjukkan pembanding dengan masalah arah shadow tidak sesuai posisi lampu",
          "practice": "Di Blender, pindahkan lampu ke dua sisi dan simpan render uji berlabel",
          "check": "Bayangan bergerak sesuai arah cahaya",
          "fault": "Arah shadow tidak sesuai posisi lampu",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S19-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pindahkan lampu ke dua sisi dan simpan render uji berlabel",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 20,
          "project": 3,
          "phase": 2,
          "title": "Ukuran lampu dan shadow",
          "target": "Menerapkan ukuran lampu dan shadow dan menunjukkan hasil yang dapat diperiksa: siswa menunjukkan perubahan ketajaman shadow",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan ukuran Area Light sambil menjaga energi uji yang dicatat. Tunjukkan pembanding dengan masalah arah shadow tidak sesuai posisi lampu",
          "practice": "Di Blender, bandingkan ukuran Area Light sambil menjaga energi uji yang dicatat",
          "check": "Siswa menunjukkan perubahan ketajaman shadow",
          "fault": "Arah shadow tidak sesuai posisi lampu",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S20-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan ukuran Area Light sambil menjaga energi uji yang dicatat",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 21,
          "project": 3,
          "phase": 3,
          "title": "Intensitas dan keterbacaan",
          "target": "Menerapkan intensitas dan keterbacaan dan menunjukkan hasil yang dapat diperiksa: highlight dan sisi gelap masih menyimpan bentuk",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah energi lampu bertahap lalu pilih hasil dengan bentuk terbaca. Tunjukkan pembanding dengan masalah objek terlalu gelap atau highlight kehilangan bentuk",
          "practice": "Di Blender, ubah energi lampu bertahap lalu pilih hasil dengan bentuk terbaca",
          "check": "Highlight dan sisi gelap masih menyimpan bentuk",
          "fault": "Objek terlalu gelap atau highlight kehilangan bentuk",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S21-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah energi lampu bertahap lalu pilih hasil dengan bentuk terbaca",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 22,
          "project": 3,
          "phase": 3,
          "title": "Fill light sederhana",
          "target": "Menerapkan fill light sederhana dan menunjukkan hasil yang dapat diperiksa: fill membantu keterbacaan tanpa menghilangkan arah cahaya utama",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tambahkan lampu pengisi lemah lalu bandingkan dengan versi tanpa fill. Tunjukkan pembanding dengan masalah objek terlalu gelap atau highlight kehilangan bentuk",
          "practice": "Di Blender, tambahkan lampu pengisi lemah lalu bandingkan dengan versi tanpa fill",
          "check": "Fill membantu keterbacaan tanpa menghilangkan arah cahaya utama",
          "fault": "Objek terlalu gelap atau highlight kehilangan bentuk",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S22-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tambahkan lampu pengisi lemah lalu bandingkan dengan versi tanpa fill",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 23,
          "project": 3,
          "phase": 4,
          "title": "Dua suasana dari satu studio",
          "target": "Menerapkan dua suasana dari satu studio dan menunjukkan hasil yang dapat diperiksa: perbedaan suasana dapat dijelaskan melalui parameter cahaya",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat versi cerah dan tenang dengan kamera serta objek yang sama. Tunjukkan pembanding dengan masalah render final tidak menyertakan bukti perbandingan",
          "practice": "Di Blender, buat versi cerah dan tenang dengan kamera serta objek yang sama",
          "check": "Perbedaan suasana dapat dijelaskan melalui parameter cahaya",
          "fault": "Render final tidak menyertakan bukti perbandingan",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S23-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat versi cerah dan tenang dengan kamera serta objek yang sama",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 24,
          "project": 3,
          "phase": 4,
          "title": "Presentasi: Studio Cahaya Mini",
          "target": "Menerapkan presentasi studi lighting dan menunjukkan hasil yang dapat diperiksa: siswa menjelaskan pengaruh arah, ukuran, serta intensitas lampu",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: serahkan dua PNG, diagram lampu, serta .blend dan satu revisi. Tunjukkan pembanding dengan masalah render final tidak menyertakan bukti perbandingan",
          "practice": "Di Blender, serahkan dua PNG, diagram lampu, serta .blend dan satu revisi Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Siswa menjelaskan pengaruh arah, ukuran, serta intensitas lampu",
          "fault": "Render final tidak menyertakan bukti perbandingan",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-pemula-S24-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Lighting dasar. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, serahkan dua PNG, diagram lampu, serta .blend dan satu revisi Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 25,
          "project": 4,
          "phase": 1,
          "title": "Rencana gerak tiga pose",
          "target": "Menerapkan rencana gerak tiga pose dan menunjukkan hasil yang dapat diperiksa: aksi dapat dipahami dari urutan pose dan punya titik selesai",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: gambar pose awal, puncak, dan akhir dengan durasi 2–3 detik. Tunjukkan pembanding dengan masalah durasi tidak cocok karena frame rate dan rentang frame berbeda",
          "practice": "Di Blender, gambar pose awal, puncak, dan akhir dengan durasi 2–3 detik",
          "check": "Aksi dapat dipahami dari urutan pose dan punya titik selesai",
          "fault": "Durasi tidak cocok karena frame rate dan rentang frame berbeda",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S25-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, gambar pose awal, puncak, dan akhir dengan durasi 2–3 detik",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 26,
          "project": 4,
          "phase": 1,
          "title": "Timeline dan frame rate",
          "target": "Menerapkan timeline dan frame rate dan menunjukkan hasil yang dapat diperiksa: jumlah frame sesuai durasi dan objek mempunyai posisi awal",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tetapkan 24 fps, rentang pendek, lantai, serta objek dengan origin tepat. Tunjukkan pembanding dengan masalah durasi tidak cocok karena frame rate dan rentang frame berbeda",
          "practice": "Di Blender, tetapkan 24 fps, rentang pendek, lantai, serta objek dengan origin tepat",
          "check": "Jumlah frame sesuai durasi dan objek mempunyai posisi awal",
          "fault": "Durasi tidak cocok karena frame rate dan rentang frame berbeda",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S26-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tetapkan 24 fps, rentang pendek, lantai, serta objek dengan origin tepat",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 27,
          "project": 4,
          "phase": 2,
          "title": "Keyframe posisi",
          "target": "Menerapkan keyframe posisi dan menunjukkan hasil yang dapat diperiksa: objek bergerak karena keyframe yang terlihat pada timeline",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pasang Location keyframe pada tiga frame utama lalu putar preview. Tunjukkan pembanding dengan masalah keyframe tersimpan pada objek atau properti yang salah",
          "practice": "Di Blender, pasang Location keyframe pada tiga frame utama lalu putar preview",
          "check": "Objek bergerak karena keyframe yang terlihat pada timeline",
          "fault": "Keyframe tersimpan pada objek atau properti yang salah",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S27-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pasang Location keyframe pada tiga frame utama lalu putar preview",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 28,
          "project": 4,
          "phase": 2,
          "title": "Timing dan jarak pose",
          "target": "Menerapkan timing dan jarak pose dan menunjukkan hasil yang dapat diperiksa: perubahan timing menghasilkan gerak yang dapat dibandingkan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah waktu pose puncak tanpa mengubah bentuk model. Tunjukkan pembanding dengan masalah keyframe tersimpan pada objek atau properti yang salah",
          "practice": "Di Blender, ubah waktu pose puncak tanpa mengubah bentuk model",
          "check": "Perubahan timing menghasilkan gerak yang dapat dibandingkan",
          "fault": "Keyframe tersimpan pada objek atau properti yang salah",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S28-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:gesture",
          "explanation": [
            "Proporsi adalah perbandingan antarbagian. Gesture menunjukkan arah aksi, sedangkan siluet membantu mengenali pose dan identitas tanpa detail.",
            "Mulai dari bentuk besar dan garis aksi. Bandingkan dua pose atau ekspresi sambil mempertahankan ciri tokoh yang sama."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah waktu pose puncak tanpa mengubah bentuk model",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 29,
          "project": 4,
          "phase": 3,
          "title": "Interpolasi gerak",
          "target": "Menerapkan interpolasi gerak dan menunjukkan hasil yang dapat diperiksa: siswa dapat menunjukkan percepatan atau perlambatan gerak",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan Linear dan Bezier lalu rapikan satu kurva di Graph Editor. Tunjukkan pembanding dengan masalah gerak menembus lantai atau terasa melayang",
          "practice": "Di Blender, bandingkan Linear dan Bezier lalu rapikan satu kurva di Graph Editor",
          "check": "Siswa dapat menunjukkan percepatan atau perlambatan gerak",
          "fault": "Gerak menembus lantai atau terasa melayang",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S29-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan Linear dan Bezier lalu rapikan satu kurva di Graph Editor",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 30,
          "project": 4,
          "phase": 3,
          "title": "Kontak dengan lantai",
          "target": "Menerapkan kontak dengan lantai dan menunjukkan hasil yang dapat diperiksa: kotak tidak menembus lantai sepanjang aksi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: periksa frame awal, puncak, dan mendarat lalu perbaiki posisi. Tunjukkan pembanding dengan masalah gerak menembus lantai atau terasa melayang",
          "practice": "Di Blender, periksa frame awal, puncak, dan mendarat lalu perbaiki posisi",
          "check": "Kotak tidak menembus lantai sepanjang aksi",
          "fault": "Gerak menembus lantai atau terasa melayang",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S30-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, periksa frame awal, puncak, dan mendarat lalu perbaiki posisi",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 31,
          "project": 4,
          "phase": 4,
          "title": "Preview dan render urutan",
          "target": "Menerapkan preview dan render urutan dan menunjukkan hasil yang dapat diperiksa: frame tersimpan bernomor pada folder khusus dan tidak ada bagian hilang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: render frame uji awal-tengah-akhir lalu urutan PNG resolusi kecil. Tunjukkan pembanding dengan masalah berkas urutan gambar tidak lengkap atau tersimpan menimpa sumber",
          "practice": "Di Blender, render frame uji awal-tengah-akhir lalu urutan PNG resolusi kecil",
          "check": "Frame tersimpan bernomor pada folder khusus dan tidak ada bagian hilang",
          "fault": "Berkas urutan gambar tidak lengkap atau tersimpan menimpa sumber",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-pemula-S31-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, render frame uji awal-tengah-akhir lalu urutan PNG resolusi kecil",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Ada waktu mesin yang bergantung perangkat; gunakan preview kecil."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": "Periksa satu frame/preview kecil dalam kelas. Render penuh boleh berjalan setelah sumber dan setelan diperiksa; lama proses mesin tidak menentukan kelulusan.",
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 32,
          "project": 4,
          "phase": 4,
          "title": "Presentasi: Kotak Bergerak",
          "target": "Menerapkan presentasi animasi pendek dan menunjukkan hasil yang dapat diperiksa: gerak selesai, durasi sesuai, dan siswa menjelaskan satu revisi timing",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: putar preview atau urutan gambar dan serahkan .blend serta catatan timing. Tunjukkan pembanding dengan masalah berkas urutan gambar tidak lengkap atau tersimpan menimpa sumber",
          "practice": "Di Blender, putar preview atau urutan gambar dan serahkan .blend serta catatan timing Kerjakan perubahan di Blender; serahkan sumber .blend, urutan PNG animasi, preview, dan catatan fps/durasi, dan catatan uji.",
          "check": "Gerak selesai, durasi sesuai, dan siswa menjelaskan satu revisi timing",
          "fault": "Berkas urutan gambar tidak lengkap atau tersimpan menimpa sumber",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-pemula-S32-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, putar preview atau urutan gambar dan serahkan .blend serta catatan timing Kerjakan perubahan di Blender; serahkan sumber .blend, urutan PNG animasi, preview, dan catatan fps/durasi, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        }
      ],
      "toolRevision": "tools-2026-10-21",
      "toolIds": [
        "blender"
      ],
      "setup": "Siapkan Blender versi yang diuji pada perangkat kelas; catat versi, renderer, serta waktu render uji kecil. Gunakan mouse atau emulasi navigasi yang sesuai. Uji simpan-buka .blend dan PNG; simpan tekstur serta keluaran pada folder terpisah. Untuk animasi, uji timeline dan render urutan PNG; untuk VFX siapkan plate kamera diam, Compositor, Video Sequencer, serta uji ekspor video pendek sebelum kelas.",
      "curriculumRevision": "3d-2026-10-22-v1",
      "placement": [
        "Navigasikan scene, pilih objek, dan ubah transform satu sumbu tanpa mengubah objek lain.",
        "Revisi satu mesh memakai Edit Mode lalu periksa siluet, normal, serta persinggungan.",
        "Atur kamera dan cahaya, simpan .blend, lalu buka ulang serta periksa PNG.",
        "Untuk SMA Lanjutan, jelaskan satu seam UV, satu cabang node material, serta tiga keyframe transform; berikan penguatan pada bagian yang belum mandiri."
      ],
      "learningApproach": "Contoh kecil → prediksi → latihan terbimbing → variasi mandiri → satu revisi.",
      "assessmentPolicy": "Nilai konsep, keputusan visual, teknik dan proses secara terpisah: perlu contoh langsung / mampu dengan petunjuk / mandiri. Kerapian atau kemiripan gambar AI bukan ukuran tunggal.",
      "pilotPolicy": "Catat waktu efektif, bagian sulit, bantuan dan hasil tugas transfer saat uji kelas. Gunakan waktu pengayaan untuk penguatan jika hasil minimum belum tercapai.",
      "hardwareSupport": "Gunakan model ringan dan render kecil untuk latihan; uji pengaturan pada perangkat kelas. Jangan menilai siswa dari lamanya render."
    },
    {
      "id": "smp-lanjutan",
      "age": "SMP",
      "level": "lanjutan",
      "name": "SMP · Lanjutan",
      "entry": "Dapat menavigasi Blender, memilih mode yang tepat, membuat serta merevisi mesh dasar, mengatur material dan kamera, lalu menyimpan .blend serta render. Untuk SMA, dapat membuat UV sederhana, sculpt bentuk besar, membaca node material dasar, dan mengatur transform keyframe. Bekal diamati melalui audit proyek pertama.",
      "target": "Mengaudit fondasi secara terarah, mengelola UV serta tekstur, membangun jaringan shader sederhana, dan merancang kios serta diorama isometrik dengan skala, material, dan cahaya yang konsisten.",
      "scope": "32 sesi × 1 jam per program; empat proyek × delapan sesi. Quick recap pada dua sesi pertama, lalu tekstur UV dan gambar sendiri, Shader Nodes sederhana, kios isometrik, serta diorama 3–5 aset. Gunakan kamera Orthographic berorientasi isometrik; tidak memakai Geometry Nodes atau simulasi.",
      "adaptation": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
      "projects": [
        {
          "name": "Peti dengan Tekstur Sendiri",
          "topic": "Recap dan texturing",
          "out": "Peti sederhana dengan UV checker, satu tekstur sendiri dan sumber terkemas.",
          "novelty": "Siswa mengaudit bekal lalu menghubungkan geometri, seam, UV, dan gambar tekstur. Kualitas diperiksa pada dua jarak serta pembukaan sumber di lokasi lain, sehingga tidak berhenti pada warna material dasar.",
          "stages": [
            {
              "title": "Recap dan texturing · rancangan dan audit",
              "task": "Di Blender, buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan; rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping",
              "check": "Siluet, skala, serta orientasi siap diberi UV tanpa mengulang seluruh onboarding",
              "fault": "Skala dan normal model belum siap untuk UV"
            },
            {
              "title": "Recap dan texturing · konstruksi",
              "task": "Di Blender, tandai seam, unwrap peti, lalu periksa UV islands dengan checker; atur ruang island serta margin dan perbaiki area yang meregang",
              "check": "Island tidak bertumpuk tanpa alasan dan arah bidang jelas",
              "fault": "Checker meregang atau area UV bertumpuk tanpa rencana"
            },
            {
              "title": "Recap dan texturing · uji kualitas",
              "task": "Di Blender, buat gambar tekstur garis kayu atau label sederhana dan simpan PNG; hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi",
              "check": "Gambar mengikuti UV dan tidak terbalik pada bidang utama",
              "fault": "Tekstur terlalu rinci atau arahnya tidak mengikuti bidang"
            },
            {
              "title": "Recap dan texturing · revisi brief",
              "task": "Di Blender, render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai; ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur",
              "check": "Peti dapat direvisi tanpa menggambar ulang seluruh tekstur; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang",
              "fault": "Image Texture hilang ketika .blend dibuka di lokasi lain"
            }
          ],
          "steps": [
            "Di Blender, buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan; rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping",
            "Di Blender, tandai seam, unwrap peti, lalu periksa UV islands dengan checker; atur ruang island serta margin dan perbaiki area yang meregang",
            "Di Blender, buat gambar tekstur garis kayu atau label sederhana dan simpan PNG; hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi",
            "Di Blender, render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai; ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur"
          ],
          "checks": [
            "Peti sederhana dengan UV checker, satu tekstur sendiri dan sumber terkemas.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Skala dan normal model belum siap untuk UV",
            "Checker meregang atau area UV bertumpuk tanpa rencana",
            "Tekstur terlalu rinci atau arahnya tidak mengikuti bidang",
            "Image Texture hilang ketika .blend dibuka di lokasi lain"
          ],
          "recipe": "Versi minimum: Peti sederhana dengan UV checker, satu tekstur sendiri dan sumber terkemas. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan; rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping. 2. Di Blender, tandai seam, unwrap peti, lalu periksa UV islands dengan checker; atur ruang island serta margin dan perbaiki area yang meregang. 3. Di Blender, buat gambar tekstur garis kayu atau label sederhana dan simpan PNG; hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi. 4. Di Blender, render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai; ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Recap dibatasi dua sesi pertama melalui audit model dan render. Lanjutkan seam, UV unwrap, checker, Image Texture, dan kemasan file; gunakan tekstur 512 atau 1024 piksel sederhana tanpa unduhan aset wajib.",
          "decisions": [
            "Tentukan seam berdasarkan bagian yang paling terlihat kamera.",
            "Pilih kepadatan UV dan ukuran detail sesuai jarak penggunaan."
          ],
          "transfer": "Mentor meminta label peti dipindah ke sisi lain. Siswa merevisi UV atau gambar secara terarah, menunjukkan hasil dekat-jauh, dan memastikan sumber gambar tetap tersedia.",
          "art": "model3d-smp-lanjutan-p1-ai.png",
          "number": 1,
          "start": 1,
          "end": 8,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-lanjutan-p1-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Peti sederhana dengan UV checker, satu tekstur sendiri dan sumber terkemas.",
          "minimumChecks": [
            "Peti sederhana dengan UV checker, satu tekstur sendiri dan sumber terkemas.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Peti dengan Tekstur Sendiri. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Siluet, skala, serta orientasi siap diberi UV tanpa mengulang seluruh onboarding",
            "Island tidak bertumpuk tanpa alasan dan arah bidang jelas",
            "Gambar mengikuti UV dan tidak terbalik pada bidang utama",
            "Peti dapat direvisi tanpa menggambar ulang seluruh tekstur; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan; rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping. 2. Di Blender, tandai seam, unwrap peti, lalu periksa UV islands dengan checker; atur ruang island serta margin dan perbaiki area yang meregang. 3. Di Blender, buat gambar tekstur garis kayu atau label sederhana dan simpan PNG; hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi. 4. Di Blender, render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai; ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Recap dibatasi dua sesi pertama melalui audit model dan render. Lanjutkan seam, UV unwrap, checker, Image Texture, dan kemasan file; gunakan tekstur 512 atau 1024 piksel sederhana tanpa unduhan aset wajib."
        },
        {
          "name": "Material Procedural Sederhana",
          "topic": "Simple Shader Nodes",
          "out": "Satu jaringan material minimum dengan satu parameter yang dapat dijelaskan.",
          "novelty": "Siswa membangun material yang dapat diubah parameternya dan menelusuri aliran data node. Tantangan utamanya mempertahankan skala pola serta respons cahaya pada bentuk baru, bukan sekadar mengganti warna.",
          "stages": [
            {
              "title": "Simple Shader Nodes · rancangan dan audit",
              "task": "Di Blender, gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji; hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output",
              "check": "Pola terlihat dan satu perubahan warna dapat ditelusuri ke node",
              "fault": "Node tidak terhubung ke output yang tepat"
            },
            {
              "title": "Simple Shader Nodes · konstruksi",
              "task": "Di Blender, bandingkan pola pada cube serta sphere dengan transform yang terkontrol; buat dua palet dari satu jaringan lalu catat posisi warna",
              "check": "Variasi memakai alur sama dengan parameter yang jelas",
              "fault": "Pola terlalu besar atau meregang pada objek"
            },
            {
              "title": "Simple Shader Nodes · uji kualitas",
              "task": "Di Blender, ubah roughness dengan cahaya tetap lalu simpan pembanding; hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah",
              "check": "Permukaan bertambah detail tanpa mengubah siluet atau merusak keterbacaan",
              "fault": "Bump berlebihan sehingga siluet tampak pecah"
            },
            {
              "title": "Simple Shader Nodes · revisi brief",
              "task": "Di Blender, terapkan material pada prop kedua dan periksa skala, cahaya, serta render; tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend",
              "check": "Siswa menunjukkan node penyebab perubahan beserta dua render uji; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang",
              "fault": "Dua variasi material berbeda tanpa catatan parameter"
            }
          ],
          "steps": [
            "Di Blender, gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji; hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output",
            "Di Blender, bandingkan pola pada cube serta sphere dengan transform yang terkontrol; buat dua palet dari satu jaringan lalu catat posisi warna",
            "Di Blender, ubah roughness dengan cahaya tetap lalu simpan pembanding; hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah",
            "Di Blender, terapkan material pada prop kedua dan periksa skala, cahaya, serta render; tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend"
          ],
          "checks": [
            "Satu jaringan material minimum dengan satu parameter yang dapat dijelaskan.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Node tidak terhubung ke output yang tepat",
            "Pola terlalu besar atau meregang pada objek",
            "Bump berlebihan sehingga siluet tampak pecah",
            "Dua variasi material berbeda tanpa catatan parameter"
          ],
          "recipe": "Versi minimum: Satu jaringan material minimum dengan satu parameter yang dapat dijelaskan. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji; hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output. 2. Di Blender, bandingkan pola pada cube serta sphere dengan transform yang terkontrol; buat dua palet dari satu jaringan lalu catat posisi warna. 3. Di Blender, ubah roughness dengan cahaya tetap lalu simpan pembanding; hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah. 4. Di Blender, terapkan material pada prop kedua dan periksa skala, cahaya, serta render; tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan Shader Editor: Texture Coordinate atau koordinat Generated, Noise Texture, Color Ramp, Principled BSDF, Material Output. Tambahkan Bump kecil setelah warna bekerja. Ini node material, belum Geometry Nodes.",
          "decisions": [
            "Pilih skala Noise dan batas Color Ramp berdasarkan karakter material.",
            "Tentukan roughness serta Bump minimum agar detail tidak mengalahkan bentuk."
          ],
          "transfer": "Mentor mengganti objek uji dengan bentuk memanjang. Siswa memperbaiki koordinat atau skala pola dan kekuatan Bump sambil mempertahankan karakter material pada render pembanding.",
          "art": "model3d-smp-lanjutan-p2-ai.png",
          "number": 2,
          "start": 9,
          "end": 16,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-lanjutan-p2-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Satu jaringan material minimum dengan satu parameter yang dapat dijelaskan.",
          "minimumChecks": [
            "Satu jaringan material minimum dengan satu parameter yang dapat dijelaskan.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Material Procedural Sederhana. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Pola terlihat dan satu perubahan warna dapat ditelusuri ke node",
            "Variasi memakai alur sama dengan parameter yang jelas",
            "Permukaan bertambah detail tanpa mengubah siluet atau merusak keterbacaan",
            "Siswa menunjukkan node penyebab perubahan beserta dua render uji; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji; hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output. 2. Di Blender, bandingkan pola pada cube serta sphere dengan transform yang terkontrol; buat dua palet dari satu jaringan lalu catat posisi warna. 3. Di Blender, ubah roughness dengan cahaya tetap lalu simpan pembanding; hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah. 4. Di Blender, terapkan material pada prop kedua dan periksa skala, cahaya, serta render; tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan Shader Editor: Texture Coordinate atau koordinat Generated, Noise Texture, Color Ramp, Principled BSDF, Material Output. Tambahkan Bump kecil setelah warna bekerja. Ini node material, belum Geometry Nodes."
        },
        {
          "name": "Kios Isometrik",
          "topic": "Konstruksi isometrik",
          "out": "Kios kecil dengan kamera Orthographic, struktur utama dan satu material.",
          "novelty": "Siswa merancang struktur modular dan menguji proporsi dari beberapa arah, lalu menetapkan kamera isometrik secara sadar. Kios harus dapat diubah ukurannya tanpa menyusun ulang seluruh objek atau mengandalkan satu sudut yang menyembunyikan masalah.",
          "stages": [
            {
              "title": "Konstruksi isometrik · rancangan dan audit",
              "task": "Di Blender, buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama; susun lantai, dinding, dan atap lalu periksa dari depan serta samping",
              "check": "Proporsi tidak hanya benar dari satu kamera",
              "fault": "Rancangan terlalu rinci sebelum proporsi selesai"
            },
            {
              "title": "Konstruksi isometrik · konstruksi",
              "task": "Di Blender, bangun satu modul jendela, duplikasi, lalu tata pada dinding; bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan",
              "check": "Tidak ada bagian melayang atau saling menembus tanpa alasan",
              "fault": "Modul jendela dan dinding mempunyai ukuran tidak konsisten"
            },
            {
              "title": "Konstruksi isometrik · uji kualitas",
              "task": "Di Blender, atur arah kamera isometrik dan bandingkan dengan kamera Perspective; beri material polos atau procedural ringan serta satu lampu utama",
              "check": "Pintu, atap, dan massa besar terbaca sebelum ornamen",
              "fault": "Kamera perspektif dipakai untuk contoh isometrik"
            },
            {
              "title": "Konstruksi isometrik · revisi brief",
              "task": "Di Blender, render thumbnail lalu kurangi detail yang mengganggu fokus; ubah kios menjadi versi lebih sempit dan serahkan model serta dua render",
              "check": "Modul serta proporsi diperbarui dengan sumber tetap rapi; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang",
              "fault": "Ornamen menutupi bentuk utama kios"
            }
          ],
          "steps": [
            "Di Blender, buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama; susun lantai, dinding, dan atap lalu periksa dari depan serta samping",
            "Di Blender, bangun satu modul jendela, duplikasi, lalu tata pada dinding; bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan",
            "Di Blender, atur arah kamera isometrik dan bandingkan dengan kamera Perspective; beri material polos atau procedural ringan serta satu lampu utama",
            "Di Blender, render thumbnail lalu kurangi detail yang mengganggu fokus; ubah kios menjadi versi lebih sempit dan serahkan model serta dua render"
          ],
          "checks": [
            "Kios kecil dengan kamera Orthographic, struktur utama dan satu material.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Rancangan terlalu rinci sebelum proporsi selesai",
            "Modul jendela dan dinding mempunyai ukuran tidak konsisten",
            "Kamera perspektif dipakai untuk contoh isometrik",
            "Ornamen menutupi bentuk utama kios"
          ],
          "recipe": "Versi minimum: Kios kecil dengan kamera Orthographic, struktur utama dan satu material. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama; susun lantai, dinding, dan atap lalu periksa dari depan serta samping. 2. Di Blender, bangun satu modul jendela, duplikasi, lalu tata pada dinding; bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan. 3. Di Blender, atur arah kamera isometrik dan bandingkan dengan kamera Perspective; beri material polos atau procedural ringan serta satu lampu utama. 4. Di Blender, render thumbnail lalu kurangi detail yang mengganggu fokus; ubah kios menjadi versi lebih sempit dan serahkan model serta dua render. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Bangun kios dari dinding, atap, pintu, serta jendela modular. Gunakan kamera Orthographic berorientasi sumbu isometrik; untuk proyeksi isometrik matematis, arah pandang memiliki komponen sumbu setara. Batasi detail dan gunakan shader yang telah dipahami.",
          "decisions": [
            "Tentukan ukuran modul yang sesuai skala kios serta kebutuhan pintu.",
            "Pilih orientasi dan bingkai kamera agar tiga bidang utama terbaca."
          ],
          "transfer": "Mentor mengurangi lebar kios tetapi mempertahankan fungsi pintu dan jendela. Siswa menata ulang modul, memeriksa sambungan, lalu membandingkan siluet serta render isometrik sebelum-sesudah.",
          "art": "model3d-smp-lanjutan-p3-ai.png",
          "number": 3,
          "start": 17,
          "end": 24,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-lanjutan-p3-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Kios kecil dengan kamera Orthographic, struktur utama dan satu material.",
          "minimumChecks": [
            "Kios kecil dengan kamera Orthographic, struktur utama dan satu material.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Kios Isometrik. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Proporsi tidak hanya benar dari satu kamera",
            "Tidak ada bagian melayang atau saling menembus tanpa alasan",
            "Pintu, atap, dan massa besar terbaca sebelum ornamen",
            "Modul serta proporsi diperbarui dengan sumber tetap rapi; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama; susun lantai, dinding, dan atap lalu periksa dari depan serta samping. 2. Di Blender, bangun satu modul jendela, duplikasi, lalu tata pada dinding; bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan. 3. Di Blender, atur arah kamera isometrik dan bandingkan dengan kamera Perspective; beri material polos atau procedural ringan serta satu lampu utama. 4. Di Blender, render thumbnail lalu kurangi detail yang mengganggu fokus; ubah kios menjadi versi lebih sempit dan serahkan model serta dua render. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Bangun kios dari dinding, atap, pintu, serta jendela modular. Gunakan kamera Orthographic berorientasi sumbu isometrik; untuk proyeksi isometrik matematis, arah pandang memiliki komponen sumbu setara. Batasi detail dan gunakan shader yang telah dipahami."
        },
        {
          "name": "Sudut Taman Isometrik",
          "topic": "Final isometric design",
          "out": "Diorama kecil memakai tiga aset yang sudah dibuat; skala, material dan kamera konsisten.",
          "novelty": "Proyek final menuntut rancangan adegan baru dengan skala aset, material gambar dan procedural, serta proyeksi yang saling konsisten. Siswa menguji fokus pada pembaca dan memprioritaskan revisi berdasarkan bukti, bukan menambah ornamen.",
          "stages": [
            {
              "title": "Final isometric design · rancangan dan audit",
              "task": "Di Blender, buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu; tetapkan ukuran relatif tiga aset serta panggung kecil",
              "check": "Skala antarobjek konsisten dan daftar aset dapat diselesaikan",
              "fault": "Daftar aset bertambah tanpa mendukung fokus"
            },
            {
              "title": "Final isometric design · konstruksi",
              "task": "Di Blender, model bangku dan pot dengan geometri ekonomis serta nama yang jelas; tambahkan lampu sederhana dan tata tiga aset pada panggung",
              "check": "Komposisi mempunyai jalur pandang tanpa objek bertumpuk membingungkan",
              "fault": "Skala bangku, pot, serta lampu tidak cocok"
            },
            {
              "title": "Final isometric design · uji kualitas",
              "task": "Di Blender, pakai satu tekstur gambar dan satu material procedural milik siswa; atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman",
              "check": "Bayangan dan tiga arah ruang membantu membaca fokus",
              "fault": "Tekstur dan cahaya saling berebut perhatian"
            },
            {
              "title": "Final isometric design · revisi brief",
              "task": "Di Blender, minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar; tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi",
              "check": "Siswa menunjukkan integrasi modeling, texture, node, lighting, serta isometrik; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang",
              "fault": "Revisi kamera merusak proyeksi isometrik"
            }
          ],
          "steps": [
            "Di Blender, buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu; tetapkan ukuran relatif tiga aset serta panggung kecil",
            "Di Blender, model bangku dan pot dengan geometri ekonomis serta nama yang jelas; tambahkan lampu sederhana dan tata tiga aset pada panggung",
            "Di Blender, pakai satu tekstur gambar dan satu material procedural milik siswa; atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman",
            "Di Blender, minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar; tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi"
          ],
          "checks": [
            "Diorama kecil memakai tiga aset yang sudah dibuat; skala, material dan kamera konsisten.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Daftar aset bertambah tanpa mendukung fokus",
            "Skala bangku, pot, serta lampu tidak cocok",
            "Tekstur dan cahaya saling berebut perhatian",
            "Revisi kamera merusak proyeksi isometrik"
          ],
          "recipe": "Versi minimum: Diorama kecil memakai tiga aset yang sudah dibuat; skala, material dan kamera konsisten. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu; tetapkan ukuran relatif tiga aset serta panggung kecil. 2. Di Blender, model bangku dan pot dengan geometri ekonomis serta nama yang jelas; tambahkan lampu sederhana dan tata tiga aset pada panggung. 3. Di Blender, pakai satu tekstur gambar dan satu material procedural milik siswa; atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman. 4. Di Blender, minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar; tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Rancang panggung kecil berisi bangku, tanaman, serta lampu. Pakai kembali aturan modular dan material sendiri secara terarah, lalu buat komposisi baru. Batasi 3–5 aset utama, satu kamera, satu kondisi cahaya final.",
          "decisions": [
            "Pilih jumlah serta susunan aset minimum untuk menyampaikan tema taman.",
            "Tentukan bagian bertekstur dan bagian polos agar fokus tetap jelas."
          ],
          "transfer": "Mentor meminta fokus pindah dari bangku ke tanaman. Siswa merevisi susunan, kontras, dan pencahayaan sambil menjaga skala aset serta proyeksi isometrik, lalu mengulang uji thumbnail.",
          "art": "model3d-smp-lanjutan-p4-ai.png",
          "number": 4,
          "start": 25,
          "end": 32,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-smp-lanjutan-p4-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Diorama kecil memakai tiga aset yang sudah dibuat; skala, material dan kamera konsisten.",
          "minimumChecks": [
            "Diorama kecil memakai tiga aset yang sudah dibuat; skala, material dan kamera konsisten.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Sudut Taman Isometrik. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Skala antarobjek konsisten dan daftar aset dapat diselesaikan",
            "Komposisi mempunyai jalur pandang tanpa objek bertumpuk membingungkan",
            "Bayangan dan tiga arah ruang membantu membaca fokus",
            "Siswa menunjukkan integrasi modeling, texture, node, lighting, serta isometrik; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu; tetapkan ukuran relatif tiga aset serta panggung kecil. 2. Di Blender, model bangku dan pot dengan geometri ekonomis serta nama yang jelas; tambahkan lampu sederhana dan tata tiga aset pada panggung. 3. Di Blender, pakai satu tekstur gambar dan satu material procedural milik siswa; atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman. 4. Di Blender, minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar; tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Rancang panggung kecil berisi bangku, tanaman, serta lampu. Pakai kembali aturan modular dan material sendiri secara terarah, lalu buat komposisi baru. Batasi 3–5 aset utama, satu kamera, satu kondisi cahaya final."
        }
      ],
      "sessions": [
        {
          "number": 1,
          "project": 1,
          "phase": 1,
          "title": "Audit fondasi pada prop",
          "target": "Menerapkan audit fondasi pada prop dan menunjukkan hasil yang dapat diperiksa: siswa menunjukkan masalah nyata dan membedakan prioritas geometri serta tampilan",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan. Tunjukkan pembanding dengan masalah skala dan normal model belum siap untuk uv",
          "practice": "Di Blender, buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan",
          "check": "Siswa menunjukkan masalah nyata dan membedakan prioritas geometri serta tampilan",
          "fault": "Skala dan normal model belum siap untuk UV",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S01-kode-siswa",
          "advancedDemand": "Recap dan texturing · rancangan dan audit",
          "independentDecision": "Tentukan seam berdasarkan bagian yang paling terlihat kamera.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "onboarding",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "onboarding",
            "label": "Orientasi alat",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 10
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 20
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 10,
            "guidedMinutes": 10,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Sumber latihan baru; perangkat siap sebelum kelas.",
            "minimum": "Di Blender, buka model latihan, uji transform, normal, kamera, dan render lalu catat penguatan",
            "understanding": "Tutup lalu buka kembali sumber, ulangi satu tindakan tanpa mengikuti klik mentor dan jelaskan apa yang berubah.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 5,
              "max": 10,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Belajar orientasi alat dan simpan-buka ulang.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 2,
          "project": 1,
          "phase": 1,
          "title": "Revisi prop untuk tekstur",
          "target": "Menerapkan revisi prop untuk tekstur dan menunjukkan hasil yang dapat diperiksa: siluet, skala, serta orientasi siap diberi UV tanpa mengulang seluruh onboarding",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping. Tunjukkan pembanding dengan masalah skala dan normal model belum siap untuk uv",
          "practice": "Di Blender, rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping",
          "check": "Siluet, skala, serta orientasi siap diberi UV tanpa mengulang seluruh onboarding",
          "fault": "Skala dan normal model belum siap untuk UV",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S02-kode-siswa",
          "advancedDemand": "Recap dan texturing · rancangan dan audit",
          "independentDecision": "Tentukan seam berdasarkan bagian yang paling terlihat kamera.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, rapikan peti sederhana, apply scale yang diperlukan, lalu rencanakan bidang depan dan samping",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 3,
          "project": 1,
          "phase": 2,
          "title": "Seam dan UV unwrap",
          "target": "Menerapkan seam dan UV unwrap dan menunjukkan hasil yang dapat diperiksa: pola checker memiliki ukuran masuk akal pada permukaan yang terlihat",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tandai seam, unwrap peti, lalu periksa UV islands dengan checker. Tunjukkan pembanding dengan masalah checker meregang atau area uv bertumpuk tanpa rencana",
          "practice": "Di Blender, tandai seam, unwrap peti, lalu periksa UV islands dengan checker",
          "check": "Pola checker memiliki ukuran masuk akal pada permukaan yang terlihat",
          "fault": "Checker meregang atau area UV bertumpuk tanpa rencana",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S03-kode-siswa",
          "advancedDemand": "Recap dan texturing · konstruksi",
          "independentDecision": "Pilih kepadatan UV dan ukuran detail sesuai jarak penggunaan.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:uv",
          "explanation": [
            "UV memetakan permukaan mesh ke gambar 2D. Seam menentukan potongan; checker membantu melihat regangan dan perbedaan ukuran tekstur.",
            "Terapkan skala objek sesuai kebutuhan, unwrap lalu periksa checker depan dan samping. Rapikan island sebelum menggambar tekstur."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tandai seam, unwrap peti, lalu periksa UV islands dengan checker",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 4,
          "project": 1,
          "phase": 2,
          "title": "Layout dan kepadatan UV",
          "target": "Menerapkan layout dan kepadatan UV dan menunjukkan hasil yang dapat diperiksa: island tidak bertumpuk tanpa alasan dan arah bidang jelas",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur ruang island serta margin dan perbaiki area yang meregang. Tunjukkan pembanding dengan masalah checker meregang atau area uv bertumpuk tanpa rencana",
          "practice": "Di Blender, atur ruang island serta margin dan perbaiki area yang meregang",
          "check": "Island tidak bertumpuk tanpa alasan dan arah bidang jelas",
          "fault": "Checker meregang atau area UV bertumpuk tanpa rencana",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S04-kode-siswa",
          "advancedDemand": "Recap dan texturing · konstruksi",
          "independentDecision": "Pilih kepadatan UV dan ukuran detail sesuai jarak penggunaan.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:uv",
          "explanation": [
            "UV memetakan permukaan mesh ke gambar 2D. Seam menentukan potongan; checker membantu melihat regangan dan perbedaan ukuran tekstur.",
            "Terapkan skala objek sesuai kebutuhan, unwrap lalu periksa checker depan dan samping. Rapikan island sebelum menggambar tekstur."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur ruang island serta margin dan perbaiki area yang meregang",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 5,
          "project": 1,
          "phase": 3,
          "title": "Tekstur warna buatan sendiri",
          "target": "Menerapkan tekstur warna buatan sendiri dan menunjukkan hasil yang dapat diperiksa: tekstur milik siswa memiliki arah serta ukuran detail yang sesuai peti",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat gambar tekstur garis kayu atau label sederhana dan simpan PNG. Tunjukkan pembanding dengan masalah tekstur terlalu rinci atau arahnya tidak mengikuti bidang",
          "practice": "Di Blender, buat gambar tekstur garis kayu atau label sederhana dan simpan PNG",
          "check": "Tekstur milik siswa memiliki arah serta ukuran detail yang sesuai peti",
          "fault": "Tekstur terlalu rinci atau arahnya tidak mengikuti bidang",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S05-kode-siswa",
          "advancedDemand": "Recap dan texturing · uji kualitas",
          "independentDecision": "Tentukan seam berdasarkan bagian yang paling terlihat kamera.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat gambar tekstur garis kayu atau label sederhana dan simpan PNG",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 6,
          "project": 1,
          "phase": 3,
          "title": "Hubungkan Image Texture",
          "target": "Menerapkan hubungkan Image Texture dan menunjukkan hasil yang dapat diperiksa: gambar mengikuti UV dan tidak terbalik pada bidang utama",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi. Tunjukkan pembanding dengan masalah tekstur terlalu rinci atau arahnya tidak mengikuti bidang",
          "practice": "Di Blender, hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi",
          "check": "Gambar mengikuti UV dan tidak terbalik pada bidang utama",
          "fault": "Tekstur terlalu rinci atau arahnya tidak mengikuti bidang",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S06-kode-siswa",
          "advancedDemand": "Recap dan texturing · uji kualitas",
          "independentDecision": "Tentukan seam berdasarkan bagian yang paling terlihat kamera.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, hubungkan Image Texture ke Base Color Principled BSDF dan periksa seluruh sisi",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 7,
          "project": 1,
          "phase": 4,
          "title": "Uji dekat jauh dan kemasan",
          "target": "Menerapkan uji dekat jauh dan kemasan dan menunjukkan hasil yang dapat diperiksa: tekstur tetap terbaca dan sumber gambar tidak hilang saat dibuka ulang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai. Tunjukkan pembanding dengan masalah image texture hilang ketika .blend dibuka di lokasi lain",
          "practice": "Di Blender, render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai",
          "check": "Tekstur tetap terbaca dan sumber gambar tidak hilang saat dibuka ulang",
          "fault": "Image Texture hilang ketika .blend dibuka di lokasi lain",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S07-kode-siswa",
          "advancedDemand": "Recap dan texturing · revisi brief",
          "independentDecision": "Pilih kepadatan UV dan ukuran detail sesuai jarak penggunaan.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, render dua jarak, simpan gambar eksternal, lalu gunakan Pack Resources bila sesuai",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 8,
          "project": 1,
          "phase": 4,
          "title": "Presentasi: Peti dengan Tekstur Sendiri",
          "target": "Menerapkan revisi ukuran tekstur dan menunjukkan hasil yang dapat diperiksa: peti dapat direvisi tanpa menggambar ulang seluruh tekstur",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur. Tunjukkan pembanding dengan masalah image texture hilang ketika .blend dibuka di lokasi lain",
          "practice": "Di Blender, ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur Mentor meminta label peti dipindah ke sisi lain. Siswa merevisi UV atau gambar secara terarah, menunjukkan hasil dekat-jauh, dan memastikan sumber gambar tetap tersedia. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Peti dapat direvisi tanpa menggambar ulang seluruh tekstur",
          "fault": "Image Texture hilang ketika .blend dibuka di lokasi lain",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-lanjutan-S08-kode-siswa",
          "advancedDemand": "Recap dan texturing · revisi brief",
          "independentDecision": "Pilih kepadatan UV dan ukuran detail sesuai jarak penggunaan.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Recap dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah ukuran atau arah label dari brief mentor dan serahkan prop serta tekstur Mentor meminta label peti dipindah ke sisi lain. Siswa merevisi UV atau gambar secara terarah, menunjukkan hasil dekat-jauh, dan memastikan sumber gambar tetap tersedia. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 9,
          "project": 2,
          "phase": 1,
          "title": "Baca aliran node material",
          "target": "Menerapkan baca aliran node material dan menunjukkan hasil yang dapat diperiksa: siswa membedakan data warna, nilai, serta permukaan shader",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji. Tunjukkan pembanding dengan masalah node tidak terhubung ke output yang tepat",
          "practice": "Di Blender, gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji",
          "check": "Siswa membedakan data warna, nilai, serta permukaan shader",
          "fault": "Node tidak terhubung ke output yang tepat",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S09-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · rancangan dan audit",
          "independentDecision": "Pilih skala Noise dan batas Color Ramp berdasarkan karakter material.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, gambar alur koordinat ke tekstur, warna, shader, lalu output pada satu objek uji",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 10,
          "project": 2,
          "phase": 1,
          "title": "Bangun jaringan minimum",
          "target": "Menerapkan bangun jaringan minimum dan menunjukkan hasil yang dapat diperiksa: pola terlihat dan satu perubahan warna dapat ditelusuri ke node",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output. Tunjukkan pembanding dengan masalah node tidak terhubung ke output yang tepat",
          "practice": "Di Blender, hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output",
          "check": "Pola terlihat dan satu perubahan warna dapat ditelusuri ke node",
          "fault": "Node tidak terhubung ke output yang tepat",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S10-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · rancangan dan audit",
          "independentDecision": "Pilih skala Noise dan batas Color Ramp berdasarkan karakter material.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, hubungkan Noise Texture, Color Ramp, Principled BSDF, serta Material Output",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 11,
          "project": 2,
          "phase": 2,
          "title": "Koordinat dan skala pola",
          "target": "Menerapkan koordinat dan skala pola dan menunjukkan hasil yang dapat diperiksa: ukuran pola dapat diubah tanpa mengubah geometri objek",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan pola pada cube serta sphere dengan transform yang terkontrol. Tunjukkan pembanding dengan masalah pola terlalu besar atau meregang pada objek",
          "practice": "Di Blender, bandingkan pola pada cube serta sphere dengan transform yang terkontrol",
          "check": "Ukuran pola dapat diubah tanpa mengubah geometri objek",
          "fault": "Pola terlalu besar atau meregang pada objek",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S11-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · konstruksi",
          "independentDecision": "Tentukan roughness serta Bump minimum agar detail tidak mengalahkan bentuk.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan pola pada cube serta sphere dengan transform yang terkontrol",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 12,
          "project": 2,
          "phase": 2,
          "title": "Warna melalui Color Ramp",
          "target": "Menerapkan warna melalui Color Ramp dan menunjukkan hasil yang dapat diperiksa: variasi memakai alur sama dengan parameter yang jelas",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat dua palet dari satu jaringan lalu catat posisi warna. Tunjukkan pembanding dengan masalah pola terlalu besar atau meregang pada objek",
          "practice": "Di Blender, buat dua palet dari satu jaringan lalu catat posisi warna",
          "check": "Variasi memakai alur sama dengan parameter yang jelas",
          "fault": "Pola terlalu besar atau meregang pada objek",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S12-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · konstruksi",
          "independentDecision": "Tentukan roughness serta Bump minimum agar detail tidak mengalahkan bentuk.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat dua palet dari satu jaringan lalu catat posisi warna",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 13,
          "project": 2,
          "phase": 3,
          "title": "Roughness dan pantulan",
          "target": "Menerapkan roughness dan pantulan dan menunjukkan hasil yang dapat diperiksa: perubahan pantulan dibedakan dari perubahan warna",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah roughness dengan cahaya tetap lalu simpan pembanding. Tunjukkan pembanding dengan masalah bump berlebihan sehingga siluet tampak pecah",
          "practice": "Di Blender, ubah roughness dengan cahaya tetap lalu simpan pembanding",
          "check": "Perubahan pantulan dibedakan dari perubahan warna",
          "fault": "Bump berlebihan sehingga siluet tampak pecah",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S13-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · uji kualitas",
          "independentDecision": "Pilih skala Noise dan batas Color Ramp berdasarkan karakter material.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah roughness dengan cahaya tetap lalu simpan pembanding",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 14,
          "project": 2,
          "phase": 3,
          "title": "Bump kecil pada material",
          "target": "Menerapkan bump kecil pada material dan menunjukkan hasil yang dapat diperiksa: permukaan bertambah detail tanpa mengubah siluet atau merusak keterbacaan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah. Tunjukkan pembanding dengan masalah bump berlebihan sehingga siluet tampak pecah",
          "practice": "Di Blender, hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah",
          "check": "Permukaan bertambah detail tanpa mengubah siluet atau merusak keterbacaan",
          "fault": "Bump berlebihan sehingga siluet tampak pecah",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S14-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · uji kualitas",
          "independentDecision": "Pilih skala Noise dan batas Color Ramp berdasarkan karakter material.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, hubungkan Noise ke Bump Height dan Normal shader dengan kekuatan rendah",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 15,
          "project": 2,
          "phase": 4,
          "title": "Uji material lintas bentuk",
          "target": "Menerapkan uji material lintas bentuk dan menunjukkan hasil yang dapat diperiksa: pola tetap masuk akal pada dua bentuk berbeda",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: terapkan material pada prop kedua dan periksa skala, cahaya, serta render. Tunjukkan pembanding dengan masalah dua variasi material berbeda tanpa catatan parameter",
          "practice": "Di Blender, terapkan material pada prop kedua dan periksa skala, cahaya, serta render",
          "check": "Pola tetap masuk akal pada dua bentuk berbeda",
          "fault": "Dua variasi material berbeda tanpa catatan parameter",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S15-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · revisi brief",
          "independentDecision": "Tentukan roughness serta Bump minimum agar detail tidak mengalahkan bentuk.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, terapkan material pada prop kedua dan periksa skala, cahaya, serta render",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 16,
          "project": 2,
          "phase": 4,
          "title": "Presentasi: Material Procedural Sederhana",
          "target": "Menerapkan revisi parameter mandiri dan menunjukkan hasil yang dapat diperiksa: siswa menunjukkan node penyebab perubahan beserta dua render uji",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend. Tunjukkan pembanding dengan masalah dua variasi material berbeda tanpa catatan parameter",
          "practice": "Di Blender, tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend Mentor mengganti objek uji dengan bentuk memanjang. Siswa memperbaiki koordinat atau skala pola dan kekuatan Bump sambil mempertahankan karakter material pada render pembanding. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Siswa menunjukkan node penyebab perubahan beserta dua render uji",
          "fault": "Dua variasi material berbeda tanpa catatan parameter",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-lanjutan-S16-kode-siswa",
          "advancedDemand": "Simple Shader Nodes · revisi brief",
          "independentDecision": "Tentukan roughness serta Bump minimum agar detail tidak mengalahkan bentuk.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple Shader Nodes. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tanggapi brief batu halus menjadi kasar lalu serahkan diagram dan .blend Mentor mengganti objek uji dengan bentuk memanjang. Siswa memperbaiki koordinat atau skala pola dan kekuatan Bump sambil mempertahankan karakter material pada render pembanding. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 17,
          "project": 3,
          "phase": 1,
          "title": "Rancang satu kios kecil",
          "target": "Menerapkan rancang satu kios kecil dan menunjukkan hasil yang dapat diperiksa: rencana mempunyai fungsi, siluet, dan batas jumlah bagian",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama. Tunjukkan pembanding dengan masalah rancangan terlalu rinci sebelum proporsi selesai",
          "practice": "Di Blender, buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama",
          "check": "Rencana mempunyai fungsi, siluet, dan batas jumlah bagian",
          "fault": "Rancangan terlalu rinci sebelum proporsi selesai",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S17-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · rancangan dan audit",
          "independentDecision": "Tentukan ukuran modul yang sesuai skala kios serta kebutuhan pintu.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, buat dua thumbnail dan tentukan ukuran, modul, serta tiga warna utama",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 18,
          "project": 3,
          "phase": 1,
          "title": "Blockout tiga arah",
          "target": "Menerapkan blockout tiga arah dan menunjukkan hasil yang dapat diperiksa: proporsi tidak hanya benar dari satu kamera",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: susun lantai, dinding, dan atap lalu periksa dari depan serta samping. Tunjukkan pembanding dengan masalah rancangan terlalu rinci sebelum proporsi selesai",
          "practice": "Di Blender, susun lantai, dinding, dan atap lalu periksa dari depan serta samping",
          "check": "Proporsi tidak hanya benar dari satu kamera",
          "fault": "Rancangan terlalu rinci sebelum proporsi selesai",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S18-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · rancangan dan audit",
          "independentDecision": "Tentukan ukuran modul yang sesuai skala kios serta kebutuhan pintu.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, susun lantai, dinding, dan atap lalu periksa dari depan serta samping",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 19,
          "project": 3,
          "phase": 2,
          "title": "Modul jendela dan pintu",
          "target": "Menerapkan modul jendela dan pintu dan menunjukkan hasil yang dapat diperiksa: ukuran dan posisi modul dapat direvisi secara konsisten",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bangun satu modul jendela, duplikasi, lalu tata pada dinding. Tunjukkan pembanding dengan masalah modul jendela dan dinding mempunyai ukuran tidak konsisten",
          "practice": "Di Blender, bangun satu modul jendela, duplikasi, lalu tata pada dinding",
          "check": "Ukuran dan posisi modul dapat direvisi secara konsisten",
          "fault": "Modul jendela dan dinding mempunyai ukuran tidak konsisten",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S19-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · konstruksi",
          "independentDecision": "Pilih orientasi dan bingkai kamera agar tiga bidang utama terbaca.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bangun satu modul jendela, duplikasi, lalu tata pada dinding",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 20,
          "project": 3,
          "phase": 2,
          "title": "Atap dan sambungan",
          "target": "Menerapkan atap dan sambungan dan menunjukkan hasil yang dapat diperiksa: tidak ada bagian melayang atau saling menembus tanpa alasan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan. Tunjukkan pembanding dengan masalah modul jendela dan dinding mempunyai ukuran tidak konsisten",
          "practice": "Di Blender, bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan",
          "check": "Tidak ada bagian melayang atau saling menembus tanpa alasan",
          "fault": "Modul jendela dan dinding mempunyai ukuran tidak konsisten",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S20-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · konstruksi",
          "independentDecision": "Pilih orientasi dan bingkai kamera agar tiga bidang utama terbaca.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bentuk atap dengan Extrude atau susunan mesh sederhana lalu cek pertemuan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 21,
          "project": 3,
          "phase": 3,
          "title": "Kamera Orthographic",
          "target": "Menerapkan kamera Orthographic dan menunjukkan hasil yang dapat diperiksa: garis sejajar tetap sejajar dan tiga arah ruang dapat dibaca",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur arah kamera isometrik dan bandingkan dengan kamera Perspective. Tunjukkan pembanding dengan masalah kamera perspektif dipakai untuk contoh isometrik",
          "practice": "Di Blender, atur arah kamera isometrik dan bandingkan dengan kamera Perspective",
          "check": "Garis sejajar tetap sejajar dan tiga arah ruang dapat dibaca",
          "fault": "Kamera perspektif dipakai untuk contoh isometrik",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S21-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · uji kualitas",
          "independentDecision": "Tentukan ukuran modul yang sesuai skala kios serta kebutuhan pintu.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:camera",
          "explanation": [
            "Kamera menentukan apa yang terlihat pada render. Orthographic menjaga ukuran terhadap jarak; Perspective memberi pengecilan benda yang lebih jauh.",
            "Pilih proyeksi sesuai brief dan kunci kamera saat menguji cahaya. Periksa objek tidak terpotong dan hubungan ruang tetap terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur arah kamera isometrik dan bandingkan dengan kamera Perspective",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 22,
          "project": 3,
          "phase": 3,
          "title": "Material dan hierarki bentuk",
          "target": "Menerapkan material dan hierarki bentuk dan menunjukkan hasil yang dapat diperiksa: pintu, atap, dan massa besar terbaca sebelum ornamen",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: beri material polos atau procedural ringan serta satu lampu utama. Tunjukkan pembanding dengan masalah kamera perspektif dipakai untuk contoh isometrik",
          "practice": "Di Blender, beri material polos atau procedural ringan serta satu lampu utama",
          "check": "Pintu, atap, dan massa besar terbaca sebelum ornamen",
          "fault": "Kamera perspektif dipakai untuk contoh isometrik",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S22-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · uji kualitas",
          "independentDecision": "Tentukan ukuran modul yang sesuai skala kios serta kebutuhan pintu.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:hierarchy",
          "explanation": [
            "Kontras membedakan unsur melalui ukuran, terang–gelap, bentuk atau warna. Hierarki mengurutkan perhatian: utama, pendukung, lalu detail.",
            "Tentukan satu fokus. Kecilkan karya atau lihat dalam abu-abu, lalu tanyakan bagian pertama yang terlihat; kurangi persaingan dari unsur pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, beri material polos atau procedural ringan serta satu lampu utama",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 23,
          "project": 3,
          "phase": 4,
          "title": "Uji kamera dan ukuran kecil",
          "target": "Menerapkan uji kamera dan ukuran kecil dan menunjukkan hasil yang dapat diperiksa: kios tetap terbaca pada ukuran kecil tanpa mengubah proyeksi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: render thumbnail lalu kurangi detail yang mengganggu fokus. Tunjukkan pembanding dengan masalah ornamen menutupi bentuk utama kios",
          "practice": "Di Blender, render thumbnail lalu kurangi detail yang mengganggu fokus",
          "check": "Kios tetap terbaca pada ukuran kecil tanpa mengubah proyeksi",
          "fault": "Ornamen menutupi bentuk utama kios",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S23-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · revisi brief",
          "independentDecision": "Pilih orientasi dan bingkai kamera agar tiga bidang utama terbaca.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, render thumbnail lalu kurangi detail yang mengganggu fokus",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 24,
          "project": 3,
          "phase": 4,
          "title": "Presentasi: Kios Isometrik",
          "target": "Menerapkan adaptasi kios dari brief dan menunjukkan hasil yang dapat diperiksa: modul serta proporsi diperbarui dengan sumber tetap rapi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah kios menjadi versi lebih sempit dan serahkan model serta dua render. Tunjukkan pembanding dengan masalah ornamen menutupi bentuk utama kios",
          "practice": "Di Blender, ubah kios menjadi versi lebih sempit dan serahkan model serta dua render Mentor mengurangi lebar kios tetapi mempertahankan fungsi pintu dan jendela. Siswa menata ulang modul, memeriksa sambungan, lalu membandingkan siluet serta render isometrik sebelum-sesudah. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Modul serta proporsi diperbarui dengan sumber tetap rapi",
          "fault": "Ornamen menutupi bentuk utama kios",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-lanjutan-S24-kode-siswa",
          "advancedDemand": "Konstruksi isometrik · revisi brief",
          "independentDecision": "Pilih orientasi dan bingkai kamera agar tiga bidang utama terbaca.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Konstruksi isometrik. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah kios menjadi versi lebih sempit dan serahkan model serta dua render Mentor mengurangi lebar kios tetapi mempertahankan fungsi pintu dan jendela. Siswa menata ulang modul, memeriksa sambungan, lalu membandingkan siluet serta render isometrik sebelum-sesudah. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 25,
          "project": 4,
          "phase": 1,
          "title": "Brief taman dan focal point",
          "target": "Menerapkan brief taman dan focal point dan menunjukkan hasil yang dapat diperiksa: pilihan komposisi mempunyai alasan fokus serta ruang kosong",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu. Tunjukkan pembanding dengan masalah daftar aset bertambah tanpa mendukung fokus",
          "practice": "Di Blender, buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu",
          "check": "Pilihan komposisi mempunyai alasan fokus serta ruang kosong",
          "fault": "Daftar aset bertambah tanpa mendukung fokus",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S25-kode-siswa",
          "advancedDemand": "Final isometric design · rancangan dan audit",
          "independentDecision": "Pilih jumlah serta susunan aset minimum untuk menyampaikan tema taman.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:brief",
          "explanation": [
            "Brief menjelaskan siapa yang melihat karya, pesan atau aksi yang perlu dipahami, dan batas hasil. Aset dibuat karena mendukung tujuan tersebut.",
            "Tuliskan satu tujuan dan hasil minimum. Buat dua pilihan kecil sebelum memilih; jelaskan pilihan berdasarkan tujuan, bukan hanya selera."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, buat tiga thumbnail penempatan bangku, pot, dan lampu lalu pilih satu",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 26,
          "project": 4,
          "phase": 1,
          "title": "Daftar aset dan skala",
          "target": "Menerapkan daftar aset dan skala dan menunjukkan hasil yang dapat diperiksa: skala antarobjek konsisten dan daftar aset dapat diselesaikan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tetapkan ukuran relatif tiga aset serta panggung kecil. Tunjukkan pembanding dengan masalah daftar aset bertambah tanpa mendukung fokus",
          "practice": "Di Blender, tetapkan ukuran relatif tiga aset serta panggung kecil",
          "check": "Skala antarobjek konsisten dan daftar aset dapat diselesaikan",
          "fault": "Daftar aset bertambah tanpa mendukung fokus",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S26-kode-siswa",
          "advancedDemand": "Final isometric design · rancangan dan audit",
          "independentDecision": "Pilih jumlah serta susunan aset minimum untuk menyampaikan tema taman.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:brief",
          "explanation": [
            "Brief menjelaskan siapa yang melihat karya, pesan atau aksi yang perlu dipahami, dan batas hasil. Aset dibuat karena mendukung tujuan tersebut.",
            "Tuliskan satu tujuan dan hasil minimum. Buat dua pilihan kecil sebelum memilih; jelaskan pilihan berdasarkan tujuan, bukan hanya selera."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tetapkan ukuran relatif tiga aset serta panggung kecil",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 27,
          "project": 4,
          "phase": 2,
          "title": "Bangun aset utama",
          "target": "Menerapkan bangun aset utama dan menunjukkan hasil yang dapat diperiksa: aset dapat dipindah dan direvisi sebagai bagian terpisah",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: model bangku dan pot dengan geometri ekonomis serta nama yang jelas. Tunjukkan pembanding dengan masalah skala bangku, pot, serta lampu tidak cocok",
          "practice": "Di Blender, model bangku dan pot dengan geometri ekonomis serta nama yang jelas",
          "check": "Aset dapat dipindah dan direvisi sebagai bagian terpisah",
          "fault": "Skala bangku, pot, serta lampu tidak cocok",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S27-kode-siswa",
          "advancedDemand": "Final isometric design · konstruksi",
          "independentDecision": "Tentukan bagian bertekstur dan bagian polos agar fokus tetap jelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, model bangku dan pot dengan geometri ekonomis serta nama yang jelas",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 28,
          "project": 4,
          "phase": 2,
          "title": "Susun diorama",
          "target": "Menerapkan susun diorama dan menunjukkan hasil yang dapat diperiksa: komposisi mempunyai jalur pandang tanpa objek bertumpuk membingungkan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tambahkan lampu sederhana dan tata tiga aset pada panggung. Tunjukkan pembanding dengan masalah skala bangku, pot, serta lampu tidak cocok",
          "practice": "Di Blender, tambahkan lampu sederhana dan tata tiga aset pada panggung",
          "check": "Komposisi mempunyai jalur pandang tanpa objek bertumpuk membingungkan",
          "fault": "Skala bangku, pot, serta lampu tidak cocok",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S28-kode-siswa",
          "advancedDemand": "Final isometric design · konstruksi",
          "independentDecision": "Tentukan bagian bertekstur dan bagian polos agar fokus tetap jelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "production",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "production",
            "label": "Produksi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 3
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 2
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 38
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 35,
            "guidedMinutes": 3,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tambahkan lampu sederhana dan tata tiga aset pada panggung",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 27,
              "max": 35,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 29,
          "project": 4,
          "phase": 3,
          "title": "Integrasi tekstur dan node",
          "target": "Menerapkan integrasi tekstur dan node dan menunjukkan hasil yang dapat diperiksa: skala pola serta palet konsisten dengan fokus diorama",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pakai satu tekstur gambar dan satu material procedural milik siswa. Tunjukkan pembanding dengan masalah tekstur dan cahaya saling berebut perhatian",
          "practice": "Di Blender, pakai satu tekstur gambar dan satu material procedural milik siswa",
          "check": "Skala pola serta palet konsisten dengan fokus diorama",
          "fault": "Tekstur dan cahaya saling berebut perhatian",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S29-kode-siswa",
          "advancedDemand": "Final isometric design · uji kualitas",
          "independentDecision": "Pilih jumlah serta susunan aset minimum untuk menyampaikan tema taman.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "production",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "production",
            "label": "Produksi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 3
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 2
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 38
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 35,
            "guidedMinutes": 3,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pakai satu tekstur gambar dan satu material procedural milik siswa",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 30,
              "max": 35,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 30,
          "project": 4,
          "phase": 3,
          "title": "Cahaya dan kamera final",
          "target": "Menerapkan cahaya dan kamera final dan menunjukkan hasil yang dapat diperiksa: bayangan dan tiga arah ruang membantu membaca fokus",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman. Tunjukkan pembanding dengan masalah tekstur dan cahaya saling berebut perhatian",
          "practice": "Di Blender, atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman",
          "check": "Bayangan dan tiga arah ruang membantu membaca fokus",
          "fault": "Tekstur dan cahaya saling berebut perhatian",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S30-kode-siswa",
          "advancedDemand": "Final isometric design · uji kualitas",
          "independentDecision": "Pilih jumlah serta susunan aset minimum untuk menyampaikan tema taman.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:camera",
          "explanation": [
            "Kamera menentukan apa yang terlihat pada render. Orthographic menjaga ukuran terhadap jarak; Perspective memberi pengecilan benda yang lebih jauh.",
            "Pilih proyeksi sesuai brief dan kunci kamera saat menguji cahaya. Periksa objek tidak terpotong dan hubungan ruang tetap terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur kamera Orthographic isometrik serta lampu yang mendukung kedalaman",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 31,
          "project": 4,
          "phase": 4,
          "title": "Uji thumbnail dan sumber",
          "target": "Menerapkan uji thumbnail dan sumber dan menunjukkan hasil yang dapat diperiksa: pembaca menemukan fokus dan .blend tidak kehilangan tekstur",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar. Tunjukkan pembanding dengan masalah revisi kamera merusak proyeksi isometrik",
          "practice": "Di Blender, minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar",
          "check": "Pembaca menemukan fokus dan .blend tidak kehilangan tekstur",
          "fault": "Revisi kamera merusak proyeksi isometrik",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-smp-lanjutan-S31-kode-siswa",
          "advancedDemand": "Final isometric design · revisi brief",
          "independentDecision": "Tentukan bagian bertekstur dan bagian polos agar fokus tetap jelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, minta teman menunjuk fokus, perbaiki temuan, lalu cek sumber serta gambar",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 32,
          "project": 4,
          "phase": 4,
          "title": "Presentasi: Sudut Taman Isometrik",
          "target": "Menerapkan presentasi diorama mandiri dan menunjukkan hasil yang dapat diperiksa: siswa menunjukkan integrasi modeling, texture, node, lighting, serta isometrik",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi. Tunjukkan pembanding dengan masalah revisi kamera merusak proyeksi isometrik",
          "practice": "Di Blender, tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi Mentor meminta fokus pindah dari bangku ke tanaman. Siswa merevisi susunan, kontras, dan pencahayaan sambil menjaga skala aset serta proyeksi isometrik, lalu mengulang uji thumbnail. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Siswa menunjukkan integrasi modeling, texture, node, lighting, serta isometrik",
          "fault": "Revisi kamera merusak proyeksi isometrik",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-smp-lanjutan-S32-kode-siswa",
          "advancedDemand": "Final isometric design · revisi brief",
          "independentDecision": "Tentukan bagian bertekstur dan bagian polos agar fokus tetap jelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Final isometric design. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tanggapi perubahan posisi fokus dan serahkan .blend, PNG, serta catatan revisi Mentor meminta fokus pindah dari bangku ke tanaman. Siswa merevisi susunan, kontras, dan pencahayaan sambil menjaga skala aset serta proyeksi isometrik, lalu mengulang uji thumbnail. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        }
      ],
      "toolRevision": "tools-2026-10-21",
      "toolIds": [
        "blender"
      ],
      "setup": "Siapkan Blender versi yang diuji pada perangkat kelas; catat versi, renderer, serta waktu render uji kecil. Gunakan mouse atau emulasi navigasi yang sesuai. Uji simpan-buka .blend dan PNG; simpan tekstur serta keluaran pada folder terpisah. Untuk animasi, uji timeline dan render urutan PNG; untuk VFX siapkan plate kamera diam, Compositor, Video Sequencer, serta uji ekspor video pendek sebelum kelas.",
      "curriculumRevision": "3d-2026-10-22-v1",
      "placement": [
        "Navigasikan scene, pilih objek, dan ubah transform satu sumbu tanpa mengubah objek lain.",
        "Revisi satu mesh memakai Edit Mode lalu periksa siluet, normal, serta persinggungan.",
        "Atur kamera dan cahaya, simpan .blend, lalu buka ulang serta periksa PNG.",
        "Untuk SMA Lanjutan, jelaskan satu seam UV, satu cabang node material, serta tiga keyframe transform; berikan penguatan pada bagian yang belum mandiri."
      ],
      "learningApproach": "Brief dan batas → alternatif → keputusan mandiri → uji pengguna → revisi beralasan.",
      "assessmentPolicy": "Nilai konsep, keputusan visual, teknik dan proses secara terpisah: perlu contoh langsung / mampu dengan petunjuk / mandiri. Kerapian atau kemiripan gambar AI bukan ukuran tunggal.",
      "pilotPolicy": "Catat waktu efektif, bagian sulit, bantuan dan hasil tugas transfer saat uji kelas. Gunakan waktu pengayaan untuk penguatan jika hasil minimum belum tercapai.",
      "hardwareSupport": "Gunakan model ringan dan render kecil untuk latihan; uji pengaturan pada perangkat kelas. Jangan menilai siswa dari lamanya render."
    },
    {
      "id": "sma-pemula",
      "age": "SMA",
      "level": "pemula",
      "name": "SMA · Pemula",
      "entry": "Tidak memerlukan pengalaman 3D. Mulai dari navigasi serta seleksi, transform, Object/Edit Mode, dan penyimpanan; mentor menyesuaikan perangkat serta bantuan.",
      "target": "Menguasai fondasi modeling, kamera, lighting serta material/UV sederhana melalui aset yang dipakai kembali; mengenali animasi transform. Sculpt adalah eksplorasi opsional setelah fondasi stabil.",
      "scope": "32 sesi × 1 jam; empat proyek kecil yang saling melanjutkan. Modeling, proporsi, siluet, material, kamera dan lighting menjadi inti. Gunakan kembali objek untuk UV, cahaya dan gerak. Sculpting bukan syarat kelulusan.",
      "adaptation": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
      "projects": [
        {
          "name": "Studio Objek Pertama",
          "topic": "Onboarding, basic modeling dan lighting",
          "out": "Still life dua atau tiga objek sederhana, satu kamera dan dua uji cahaya.",
          "art": "model3d-sma-pemula-p1-ai.png",
          "steps": [
            "Di Blender, latih orbit, pan, zoom, Frame Selected, seleksi, nama objek, serta simpan .blend; susun tiga primitives dengan ukuran relatif yang dicatat",
            "Di Blender, bandingkan perubahan objek dengan vertex, edge, dan face pada salinan mesh; bentuk cangkir sederhana atau kotak dari mesh dengan detail seperlunya",
            "Di Blender, tata tiga objek pada plane serta bingkai kamera yang menyisakan ruang; uji dua posisi lampu dengan geometri serta kamera tetap",
            "Di Blender, bandingkan energi serta ukuran lampu lalu pilih lighting yang menjelaskan bentuk; serahkan .blend, PNG, dan catatan ukuran serta pilihan cahaya"
          ],
          "checks": [
            "Still life dua atau tiga objek sederhana, satu kamera dan dua uji cahaya.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Navigasi dan seleksi mengubah objek yang tidak dimaksud",
            "Extrude atau skala membuat geometri tak terkendali",
            "Arah cahaya tidak menjelaskan volume objek",
            "Hasil render dan sumber tersimpan tanpa versi yang jelas"
          ],
          "recipe": "Versi minimum: Still life dua atau tiga objek sederhana, satu kamera dan dua uji cahaya. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, latih orbit, pan, zoom, Frame Selected, seleksi, nama objek, serta simpan .blend; susun tiga primitives dengan ukuran relatif yang dicatat. 2. Di Blender, bandingkan perubahan objek dengan vertex, edge, dan face pada salinan mesh; bentuk cangkir sederhana atau kotak dari mesh dengan detail seperlunya. 3. Di Blender, tata tiga objek pada plane serta bingkai kamera yang menyisakan ruang; uji dua posisi lampu dengan geometri serta kamera tetap. 4. Di Blender, bandingkan energi serta ukuran lampu lalu pilih lighting yang menjelaskan bentuk; serahkan .blend, PNG, dan catatan ukuran serta pilihan cahaya. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Onboarding menyatu dengan proyek minimum: navigasi, Outliner, Object/Edit Mode, transform, Extrude, Inset, Bevel, kamera, serta Area Light. Gunakan geometri sederhana dengan ukuran dan sumber .blend yang jelas.",
          "number": 1,
          "start": 1,
          "end": 8,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-pemula-p1-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Still life dua atau tiga objek sederhana, satu kamera dan dua uji cahaya.",
          "minimumChecks": [
            "Still life dua atau tiga objek sederhana, satu kamera dan dua uji cahaya.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Studio Objek Pertama. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Transform sumbu terkontrol dan bentuk tidak melayang atau saling memotong",
            "Model terbaca tanpa face ganda atau bevel yang menelan bentuk",
            "Dua render memperlihatkan hubungan arah lampu dan shadow",
            "Siswa mendemonstrasikan modeling dasar dan menjelaskan satu revisi lighting; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, latih orbit, pan, zoom, Frame Selected, seleksi, nama objek, serta simpan .blend; susun tiga primitives dengan ukuran relatif yang dicatat. 2. Di Blender, bandingkan perubahan objek dengan vertex, edge, dan face pada salinan mesh; bentuk cangkir sederhana atau kotak dari mesh dengan detail seperlunya. 3. Di Blender, tata tiga objek pada plane serta bingkai kamera yang menyisakan ruang; uji dua posisi lampu dengan geometri serta kamera tetap. 4. Di Blender, bandingkan energi serta ukuran lampu lalu pilih lighting yang menjelaskan bentuk; serahkan .blend, PNG, dan catatan ukuran serta pilihan cahaya. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Onboarding menyatu dengan proyek minimum: navigasi, Outliner, Object/Edit Mode, transform, Extrude, Inset, Bevel, kamera, serta Area Light. Gunakan geometri sederhana dengan ukuran dan sumber .blend yang jelas."
        },
        {
          "name": "Prop dengan Tekstur Terencana",
          "topic": "Texturing dan UV",
          "out": "Satu prop dari proyek sebelumnya dengan UV terkontrol serta satu tekstur sendiri.",
          "art": "model3d-sma-pemula-p2-ai.png",
          "steps": [
            "Di Blender, pilih prop sederhana lalu tandai bidang dominan serta lokasi tekstur; rapikan geometri, normal, serta scale sebelum unwrap",
            "Di Blender, tandai seam lalu unwrap dan pasang checker sebagai penguji; perbaiki island, margin, serta orientasi bidang utama",
            "Di Blender, buat tekstur warna 512–1024 piksel dengan pola atau label fiktif lalu simpan PNG; hubungkan gambar ke Base Color serta atur roughness secara terpisah",
            "Di Blender, render dekat serta jauh lalu perbaiki pola terputus atau teks terbalik; simpan .blend beserta gambar atau Pack Resources lalu buka ulang dan presentasikan"
          ],
          "checks": [
            "Satu prop dari proyek sebelumnya dengan UV terkontrol serta satu tekstur sendiri.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Seam dipilih tanpa mempertimbangkan sisi yang terlihat",
            "Checker meregang dan arah teks atau pola terbalik",
            "Warna tekstur menutupi pemahaman roughness",
            "File gambar tidak ikut saat sumber dipindah"
          ],
          "recipe": "Versi minimum: Satu prop dari proyek sebelumnya dengan UV terkontrol serta satu tekstur sendiri. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, pilih prop sederhana lalu tandai bidang dominan serta lokasi tekstur; rapikan geometri, normal, serta scale sebelum unwrap. 2. Di Blender, tandai seam lalu unwrap dan pasang checker sebagai penguji; perbaiki island, margin, serta orientasi bidang utama. 3. Di Blender, buat tekstur warna 512–1024 piksel dengan pola atau label fiktif lalu simpan PNG; hubungkan gambar ke Base Color serta atur roughness secara terpisah. 4. Di Blender, render dekat serta jauh lalu perbaiki pola terputus atau teks terbalik; simpan .blend beserta gambar atau Pack Resources lalu buka ulang dan presentasikan. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Pisahkan warna dasar, gambar tekstur, dan roughness. Gunakan seam serta checker untuk menguji unwrap sebelum menambah gambar. Simpan tekstur lokal dan periksa kelengkapan .blend melalui pembukaan ulang.",
          "number": 2,
          "start": 9,
          "end": 16,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-pemula-p2-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Satu prop dari proyek sebelumnya dengan UV terkontrol serta satu tekstur sendiri.",
          "minimumChecks": [
            "Satu prop dari proyek sebelumnya dengan UV terkontrol serta satu tekstur sendiri.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Prop dengan Tekstur Terencana. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Permukaan siap di-unwrap dan tidak mempunyai bagian ganda tak disengaja",
            "Ukuran checker konsisten pada bagian yang mendapat prioritas",
            "Siswa membedakan warna gambar dari respons pantulan material",
            "Sumber lengkap dan siswa menjelaskan keputusan seam serta kepadatan UV; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, pilih prop sederhana lalu tandai bidang dominan serta lokasi tekstur; rapikan geometri, normal, serta scale sebelum unwrap. 2. Di Blender, tandai seam lalu unwrap dan pasang checker sebagai penguji; perbaiki island, margin, serta orientasi bidang utama. 3. Di Blender, buat tekstur warna 512–1024 piksel dengan pola atau label fiktif lalu simpan PNG; hubungkan gambar ke Base Color serta atur roughness secara terpisah. 4. Di Blender, render dekat serta jauh lalu perbaiki pola terputus atau teks terbalik; simpan .blend beserta gambar atau Pack Resources lalu buka ulang dan presentasikan. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Pisahkan warna dasar, gambar tekstur, dan roughness. Gunakan seam serta checker untuk menguji unwrap sebelum menambah gambar. Simpan tekstur lokal dan periksa kelengkapan .blend melalui pembukaan ulang."
        },
        {
          "name": "Makhluk Stylized: Bentuk Dasar",
          "topic": "Simple sculpting",
          "out": "Satu model stylized low-poly dengan massa besar, siluet serta proporsi terbaca; sculpt opsional.",
          "art": "model3d-sma-pemula-p3-ai.png",
          "steps": [
            "Audit massa dan proporsi dari objek sederhana",
            "Bentuk model low-poly dan periksa siluet dari tiga arah",
            "Rapikan bentuk sekunder; coba sculpt hanya setelah inti lolos",
            "Uji model dengan material serta kamera sederhana dan jelaskan revisi"
          ],
          "checks": [
            "Satu model stylized low-poly dengan massa besar, siluet serta proporsi terbaca; sculpt opsional.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Detail wajah dibuat sebelum massa besar terbaca",
            "Brush terlalu kuat merusak volume dan simetri",
            "Remesh menambah beban mesh tanpa manfaat terlihat",
            "Render satu sudut menyembunyikan masalah siluet"
          ],
          "recipe": "Versi minimum: Satu model stylized low-poly dengan massa besar, siluet serta proporsi terbaca; sculpt opsional. Setelah versi ini lolos, contoh pengembangan opsional: Model makhluk sederhana dengan massa besar dan siluet terbaca dari tiga sudut; low-poly cukup, sculpt menjadi pengayaan. Gunakan model ringan. Jika memilih sculpt, simpan salinan; jangan menambah resolusi sebelum bentuk terbaca.",
          "number": 3,
          "start": 17,
          "end": 24,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-pemula-p3-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Satu model stylized low-poly dengan massa besar, siluet serta proporsi terbaca; sculpt opsional.",
          "minimumChecks": [
            "Satu model stylized low-poly dengan massa besar, siluet serta proporsi terbaca; sculpt opsional.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Pada salinan model low-poly, coba sculpt massa besar dengan resolusi terbatas; bukan syarat kelulusan.",
          "transferTask": "Gunakan tema atau isi baru pada Makhluk Stylized: Bentuk Dasar. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Massa utama terbaca tanpa detail",
            "Proporsi serta siluet konsisten dari tiga sudut",
            "Model tidak melayang atau mempunyai bagian tak sengaja berpotongan",
            "Siswa menunjukkan sumber, satu render dan alasan revisi"
          ],
          "referenceRecipe": "Model makhluk sederhana dengan massa besar dan siluet terbaca dari tiga sudut; low-poly cukup, sculpt menjadi pengayaan. Gunakan model ringan. Jika memilih sculpt, simpan salinan; jangan menambah resolusi sebelum bentuk terbaca."
        },
        {
          "name": "Material dan Gerak Pendek",
          "topic": "Simple node dan animation",
          "out": "Gunakan objek yang sudah dibuat: satu material sederhana dan animasi transform 2–3 detik.",
          "art": "model3d-sma-pemula-p4-ai.png",
          "steps": [
            "Di Blender, gambar alur Noise ke Color Ramp ke Base Color shader dan Output; buat jaringan minimum pada objek uji dan bandingkan dua nilai skala",
            "Di Blender, pilih palet dan roughness dengan kamera serta lampu tetap; buat tiga pose atau sudut rotasi pada durasi 3 detik dengan 24 fps",
            "Di Blender, pasang Location atau Rotation keyframe pada objek dengan origin sesuai; bandingkan Linear serta Bezier lalu perbaiki satu kurva",
            "Di Blender, periksa awal-tengah-akhir lalu render urutan PNG kecil; putar hasil, tunjukkan jaringan node, dan serahkan .blend serta urutan gambar"
          ],
          "checks": [
            "Gunakan objek yang sudah dibuat: satu material sederhana dan animasi transform 2–3 detik.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Node berhenti sebelum shader output atau pola tidak terbaca",
            "Skala pola berubah tak terduga karena transform",
            "Rotasi meloncat atau interpolasi tidak sesuai aksi",
            "Urutan PNG salah rentang atau frame rate"
          ],
          "recipe": "Versi minimum: Gunakan objek yang sudah dibuat: satu material sederhana dan animasi transform 2–3 detik. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar alur Noise ke Color Ramp ke Base Color shader dan Output; buat jaringan minimum pada objek uji dan bandingkan dua nilai skala. 2. Di Blender, pilih palet dan roughness dengan kamera serta lampu tetap; buat tiga pose atau sudut rotasi pada durasi 3 detik dengan 24 fps. 3. Di Blender, pasang Location atau Rotation keyframe pada objek dengan origin sesuai; bandingkan Linear serta Bezier lalu perbaiki satu kurva. 4. Di Blender, periksa awal-tengah-akhir lalu render urutan PNG kecil; putar hasil, tunjukkan jaringan node, dan serahkan .blend serta urutan gambar. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan objek sederhana atau versi ringan sculpt milik siswa. Shader Editor memakai Noise, Color Ramp, Principled BSDF, Material Output; animasi transform cukup satu aksi atau putaran. Hindari Geometry Nodes dan rig agar node serta timing dipahami dahulu.",
          "number": 4,
          "start": 25,
          "end": 32,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "urutan PNG animasi, preview, dan catatan fps/durasi",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-pemula-p4-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Gunakan objek yang sudah dibuat: satu material sederhana dan animasi transform 2–3 detik.",
          "minimumChecks": [
            "Gunakan objek yang sudah dibuat: satu material sederhana dan animasi transform 2–3 detik.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Gunakan tema atau isi baru pada Material dan Gerak Pendek. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Satu perubahan pola dapat ditelusuri ke node yang tepat",
            "Rentang frame dan parameter bergerak sesuai rencana aksi",
            "Timing mendukung aksi dan siswa menunjukkan penyebab percepatan",
            "Siswa menjelaskan satu keputusan material dan satu revisi timing; sumber .blend dan urutan PNG animasi, preview, dan catatan fps/durasi tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, gambar alur Noise ke Color Ramp ke Base Color shader dan Output; buat jaringan minimum pada objek uji dan bandingkan dua nilai skala. 2. Di Blender, pilih palet dan roughness dengan kamera serta lampu tetap; buat tiga pose atau sudut rotasi pada durasi 3 detik dengan 24 fps. 3. Di Blender, pasang Location atau Rotation keyframe pada objek dengan origin sesuai; bandingkan Linear serta Bezier lalu perbaiki satu kurva. 4. Di Blender, periksa awal-tengah-akhir lalu render urutan PNG kecil; putar hasil, tunjukkan jaringan node, dan serahkan .blend serta urutan gambar. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan objek sederhana atau versi ringan sculpt milik siswa. Shader Editor memakai Noise, Color Ramp, Principled BSDF, Material Output; animasi transform cukup satu aksi atau putaran. Hindari Geometry Nodes dan rig agar node serta timing dipahami dahulu."
        }
      ],
      "sessions": [
        {
          "number": 1,
          "project": 1,
          "phase": 1,
          "title": "Navigasi dan pengelolaan scene",
          "target": "Menerapkan navigasi dan pengelolaan scene dan menunjukkan hasil yang dapat diperiksa: siswa dapat menemukan objek serta membuka ulang sumber tanpa bantuan langkah demi langkah",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: latih orbit, pan, zoom, Frame Selected, seleksi, nama objek, serta simpan .blend. Tunjukkan pembanding dengan masalah navigasi dan seleksi mengubah objek yang tidak dimaksud",
          "practice": "Di Blender, latih orbit, pan, zoom, Frame Selected, seleksi, nama objek, serta simpan .blend",
          "check": "Siswa dapat menemukan objek serta membuka ulang sumber tanpa bantuan langkah demi langkah",
          "fault": "Navigasi dan seleksi mengubah objek yang tidak dimaksud",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S01-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:navigation",
          "explanation": [
            "Orbit mengubah sudut pandang, pan menggeser pandangan dan zoom mendekatkan tampilan. Ketiganya tidak harus mengubah posisi objek.",
            "Gunakan Frame Selected untuk menemukan objek. Orbit ke depan dan samping lalu kembali tanpa memindahkan mesh."
          ],
          "sessionType": "onboarding",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "onboarding",
            "label": "Orientasi alat",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 10
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 20
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 10,
            "guidedMinutes": 10,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Sumber latihan baru; perangkat siap sebelum kelas.",
            "minimum": "Di Blender, latih orbit, pan, zoom, Frame Selected, seleksi, nama objek, serta simpan .blend",
            "understanding": "Tutup lalu buka kembali sumber, ulangi satu tindakan tanpa mengikuti klik mentor dan jelaskan apa yang berubah.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 5,
              "max": 10,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Belajar orientasi alat dan simpan-buka ulang.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 2,
          "project": 1,
          "phase": 1,
          "title": "Transform dan blockout",
          "target": "Menerapkan transform dan blockout dan menunjukkan hasil yang dapat diperiksa: transform sumbu terkontrol dan bentuk tidak melayang atau saling memotong",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: susun tiga primitives dengan ukuran relatif yang dicatat. Tunjukkan pembanding dengan masalah navigasi dan seleksi mengubah objek yang tidak dimaksud",
          "practice": "Di Blender, susun tiga primitives dengan ukuran relatif yang dicatat",
          "check": "Transform sumbu terkontrol dan bentuk tidak melayang atau saling memotong",
          "fault": "Navigasi dan seleksi mengubah objek yang tidak dimaksud",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S02-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:transform",
          "explanation": [
            "Transform objek meliputi posisi, rotasi dan skala pada X, Y, Z. Skala objek berbeda dari ukuran mesh di Edit Mode.",
            "Batasi perubahan pada satu sumbu. Periksa dimensi dan pijakan; sebelum modifier atau UV, periksa apakah skala perlu diterapkan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, susun tiga primitives dengan ukuran relatif yang dicatat",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 3,
          "project": 1,
          "phase": 2,
          "title": "Object Mode dan Edit Mode",
          "target": "Menerapkan object Mode dan Edit Mode dan menunjukkan hasil yang dapat diperiksa: siswa memilih mode sesuai perubahan dan membedakan objek dari komponen mesh",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan perubahan objek dengan vertex, edge, dan face pada salinan mesh. Tunjukkan pembanding dengan masalah extrude atau skala membuat geometri tak terkendali",
          "practice": "Di Blender, bandingkan perubahan objek dengan vertex, edge, dan face pada salinan mesh",
          "check": "Siswa memilih mode sesuai perubahan dan membedakan objek dari komponen mesh",
          "fault": "Extrude atau skala membuat geometri tak terkendali",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S03-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:mesh",
          "explanation": [
            "Object Mode memilih objek utuh; Edit Mode mengubah mesh di dalamnya. Vertex adalah titik, edge menghubungkan titik dan face membentuk permukaan.",
            "Pilih satu vertex, edge lalu face pada kubus. Ubah satu bagian di Edit Mode dan bandingkan dengan memindahkan objek utuh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan perubahan objek dengan vertex, edge, dan face pada salinan mesh",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 4,
          "project": 1,
          "phase": 2,
          "title": "Extrude Inset dan Bevel",
          "target": "Menerapkan extrude Inset dan Bevel dan menunjukkan hasil yang dapat diperiksa: model terbaca tanpa face ganda atau bevel yang menelan bentuk",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bentuk cangkir sederhana atau kotak dari mesh dengan detail seperlunya. Tunjukkan pembanding dengan masalah extrude atau skala membuat geometri tak terkendali",
          "practice": "Di Blender, bentuk cangkir sederhana atau kotak dari mesh dengan detail seperlunya",
          "check": "Model terbaca tanpa face ganda atau bevel yang menelan bentuk",
          "fault": "Extrude atau skala membuat geometri tak terkendali",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S04-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:model",
          "explanation": [
            "Extrude menambah geometri dari bagian terpilih, Inset membuat bidang di dalam face dan Bevel memotong tepi. Modifier perlu diperiksa pengaruhnya pada bentuk.",
            "Gunakan satu operasi dahulu. Periksa dari tiga sudut; hindari face tumpang tindih dan detail yang tidak membantu siluet."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bentuk cangkir sederhana atau kotak dari mesh dengan detail seperlunya",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 5,
          "project": 1,
          "phase": 3,
          "title": "Susunan kamera dan lantai",
          "target": "Menerapkan susunan kamera dan lantai dan menunjukkan hasil yang dapat diperiksa: objek berpijak dan komposisi terbaca dari kamera serta viewport lain",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tata tiga objek pada plane serta bingkai kamera yang menyisakan ruang. Tunjukkan pembanding dengan masalah arah cahaya tidak menjelaskan volume objek",
          "practice": "Di Blender, tata tiga objek pada plane serta bingkai kamera yang menyisakan ruang",
          "check": "Objek berpijak dan komposisi terbaca dari kamera serta viewport lain",
          "fault": "Arah cahaya tidak menjelaskan volume objek",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S05-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:camera",
          "explanation": [
            "Kamera menentukan apa yang terlihat pada render. Orthographic menjaga ukuran terhadap jarak; Perspective memberi pengecilan benda yang lebih jauh.",
            "Pilih proyeksi sesuai brief dan kunci kamera saat menguji cahaya. Periksa objek tidak terpotong dan hubungan ruang tetap terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tata tiga objek pada plane serta bingkai kamera yang menyisakan ruang",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 6,
          "project": 1,
          "phase": 3,
          "title": "Area Light dan arah bayangan",
          "target": "Menerapkan area Light dan arah bayangan dan menunjukkan hasil yang dapat diperiksa: dua render memperlihatkan hubungan arah lampu dan shadow",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: uji dua posisi lampu dengan geometri serta kamera tetap. Tunjukkan pembanding dengan masalah arah cahaya tidak menjelaskan volume objek",
          "practice": "Di Blender, uji dua posisi lampu dengan geometri serta kamera tetap",
          "check": "Dua render memperlihatkan hubungan arah lampu dan shadow",
          "fault": "Arah cahaya tidak menjelaskan volume objek",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S06-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, uji dua posisi lampu dengan geometri serta kamera tetap",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 7,
          "project": 1,
          "phase": 4,
          "title": "Intensitas dan kelembutan",
          "target": "Menerapkan intensitas dan kelembutan dan menunjukkan hasil yang dapat diperiksa: bidang terang-gelap tetap terbaca tanpa highlight yang berlebihan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan energi serta ukuran lampu lalu pilih lighting yang menjelaskan bentuk. Tunjukkan pembanding dengan masalah hasil render dan sumber tersimpan tanpa versi yang jelas",
          "practice": "Di Blender, bandingkan energi serta ukuran lampu lalu pilih lighting yang menjelaskan bentuk",
          "check": "Bidang terang-gelap tetap terbaca tanpa highlight yang berlebihan",
          "fault": "Hasil render dan sumber tersimpan tanpa versi yang jelas",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S07-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:light-size",
          "explanation": [
            "Posisi lampu mengubah arah bayangan; ukuran sumber cahaya memengaruhi kelembutan bayangan. Intensitas memengaruhi kecerahan dan perlu diuji terpisah.",
            "Kunci objek dan kamera, lalu ubah satu pengaturan lampu. Bandingkan dua render kecil agar penyebab perbedaannya jelas."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan energi serta ukuran lampu lalu pilih lighting yang menjelaskan bentuk",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 8,
          "project": 1,
          "phase": 4,
          "title": "Presentasi: Studio Objek Pertama",
          "target": "Menerapkan presentasi studio awal dan menunjukkan hasil yang dapat diperiksa: siswa mendemonstrasikan modeling dasar dan menjelaskan satu revisi lighting",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: serahkan .blend, PNG, dan catatan ukuran serta pilihan cahaya. Tunjukkan pembanding dengan masalah hasil render dan sumber tersimpan tanpa versi yang jelas",
          "practice": "Di Blender, serahkan .blend, PNG, dan catatan ukuran serta pilihan cahaya Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Siswa mendemonstrasikan modeling dasar dan menjelaskan satu revisi lighting",
          "fault": "Hasil render dan sumber tersimpan tanpa versi yang jelas",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-pemula-S08-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Onboarding, basic modeling dan lighting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, serahkan .blend, PNG, dan catatan ukuran serta pilihan cahaya Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 9,
          "project": 2,
          "phase": 1,
          "title": "Rancang fungsi dan bidang prop",
          "target": "Menerapkan rancang fungsi dan bidang prop dan menunjukkan hasil yang dapat diperiksa: rencana menjelaskan bagian yang perlu detail dan bagian yang cukup polos",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pilih prop sederhana lalu tandai bidang dominan serta lokasi tekstur. Tunjukkan pembanding dengan masalah seam dipilih tanpa mempertimbangkan sisi yang terlihat",
          "practice": "Di Blender, pilih prop sederhana lalu tandai bidang dominan serta lokasi tekstur",
          "check": "Rencana menjelaskan bagian yang perlu detail dan bagian yang cukup polos",
          "fault": "Seam dipilih tanpa mempertimbangkan sisi yang terlihat",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S09-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:brief",
          "explanation": [
            "Brief menjelaskan siapa yang melihat karya, pesan atau aksi yang perlu dipahami, dan batas hasil. Aset dibuat karena mendukung tujuan tersebut.",
            "Tuliskan satu tujuan dan hasil minimum. Buat dua pilihan kecil sebelum memilih; jelaskan pilihan berdasarkan tujuan, bukan hanya selera."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, pilih prop sederhana lalu tandai bidang dominan serta lokasi tekstur",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 10,
          "project": 2,
          "phase": 1,
          "title": "Siapkan mesh dan transform",
          "target": "Menerapkan siapkan mesh dan transform dan menunjukkan hasil yang dapat diperiksa: permukaan siap di-unwrap dan tidak mempunyai bagian ganda tak disengaja",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: rapikan geometri, normal, serta scale sebelum unwrap. Tunjukkan pembanding dengan masalah seam dipilih tanpa mempertimbangkan sisi yang terlihat",
          "practice": "Di Blender, rapikan geometri, normal, serta scale sebelum unwrap",
          "check": "Permukaan siap di-unwrap dan tidak mempunyai bagian ganda tak disengaja",
          "fault": "Seam dipilih tanpa mempertimbangkan sisi yang terlihat",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S10-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:transform",
          "explanation": [
            "Transform objek meliputi posisi, rotasi dan skala pada X, Y, Z. Skala objek berbeda dari ukuran mesh di Edit Mode.",
            "Batasi perubahan pada satu sumbu. Periksa dimensi dan pijakan; sebelum modifier atau UV, periksa apakah skala perlu diterapkan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, rapikan geometri, normal, serta scale sebelum unwrap",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 11,
          "project": 2,
          "phase": 2,
          "title": "Seam dan checker UV",
          "target": "Menerapkan seam dan checker UV dan menunjukkan hasil yang dapat diperiksa: distorsi dapat ditunjukkan sebelum tekstur final dibuat",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tandai seam lalu unwrap dan pasang checker sebagai penguji. Tunjukkan pembanding dengan masalah checker meregang dan arah teks atau pola terbalik",
          "practice": "Di Blender, tandai seam lalu unwrap dan pasang checker sebagai penguji",
          "check": "Distorsi dapat ditunjukkan sebelum tekstur final dibuat",
          "fault": "Checker meregang dan arah teks atau pola terbalik",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S11-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:uv",
          "explanation": [
            "UV memetakan permukaan mesh ke gambar 2D. Seam menentukan potongan; checker membantu melihat regangan dan perbedaan ukuran tekstur.",
            "Terapkan skala objek sesuai kebutuhan, unwrap lalu periksa checker depan dan samping. Rapikan island sebelum menggambar tekstur."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tandai seam lalu unwrap dan pasang checker sebagai penguji",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 12,
          "project": 2,
          "phase": 2,
          "title": "Layout island dan arah pola",
          "target": "Menerapkan layout island dan arah pola dan menunjukkan hasil yang dapat diperiksa: ukuran checker konsisten pada bagian yang mendapat prioritas",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: perbaiki island, margin, serta orientasi bidang utama. Tunjukkan pembanding dengan masalah checker meregang dan arah teks atau pola terbalik",
          "practice": "Di Blender, perbaiki island, margin, serta orientasi bidang utama",
          "check": "Ukuran checker konsisten pada bagian yang mendapat prioritas",
          "fault": "Checker meregang dan arah teks atau pola terbalik",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S12-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:uv",
          "explanation": [
            "UV memetakan permukaan mesh ke gambar 2D. Seam menentukan potongan; checker membantu melihat regangan dan perbedaan ukuran tekstur.",
            "Terapkan skala objek sesuai kebutuhan, unwrap lalu periksa checker depan dan samping. Rapikan island sebelum menggambar tekstur."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, perbaiki island, margin, serta orientasi bidang utama",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 13,
          "project": 2,
          "phase": 3,
          "title": "Gambar tekstur sendiri",
          "target": "Menerapkan gambar tekstur sendiri dan menunjukkan hasil yang dapat diperiksa: gambar mempunyai arah dan skala detail sesuai fungsi prop",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat tekstur warna 512–1024 piksel dengan pola atau label fiktif lalu simpan PNG. Tunjukkan pembanding dengan masalah warna tekstur menutupi pemahaman roughness",
          "practice": "Di Blender, buat tekstur warna 512–1024 piksel dengan pola atau label fiktif lalu simpan PNG",
          "check": "Gambar mempunyai arah dan skala detail sesuai fungsi prop",
          "fault": "Warna tekstur menutupi pemahaman roughness",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S13-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat tekstur warna 512–1024 piksel dengan pola atau label fiktif lalu simpan PNG",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 14,
          "project": 2,
          "phase": 3,
          "title": "Image Texture dan roughness",
          "target": "Menerapkan image Texture dan roughness dan menunjukkan hasil yang dapat diperiksa: siswa membedakan warna gambar dari respons pantulan material",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: hubungkan gambar ke Base Color serta atur roughness secara terpisah. Tunjukkan pembanding dengan masalah warna tekstur menutupi pemahaman roughness",
          "practice": "Di Blender, hubungkan gambar ke Base Color serta atur roughness secara terpisah",
          "check": "Siswa membedakan warna gambar dari respons pantulan material",
          "fault": "Warna tekstur menutupi pemahaman roughness",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S14-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, hubungkan gambar ke Base Color serta atur roughness secara terpisah",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 15,
          "project": 2,
          "phase": 4,
          "title": "Tipografi dan ruang kosong",
          "target": "Pembaca mengenali pesan utama sebelum informasi pendukung pada ukuran penggunaan.",
          "demo": "Peragakan satu bagian kecil: Adaptasikan nirmana menjadi kartu pesan dengan judul, informasi pendukung serta margin konsisten. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Adaptasikan nirmana menjadi kartu pesan dengan judul, informasi pendukung serta margin konsisten.",
          "check": "Pembaca mengenali pesan utama sebelum informasi pendukung pada ukuran penggunaan.",
          "fault": "File gambar tidak ikut saat sumber dipindah",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S15-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:type",
          "explanation": [
            "Tipografi membantu pesan dibaca melalui bentuk huruf, ukuran, jarak dan urutan informasi. Teks utama perlu lebih jelas daripada informasi pendukung.",
            "Batasi dua tingkat ukuran dahulu. Periksa keterbacaan pada ukuran penggunaan, margin, jarak baris dan urutan baca; jangan meregangkan huruf."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Adaptasikan nirmana menjadi kartu pesan dengan judul, informasi pendukung serta margin konsisten.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 16,
          "project": 2,
          "phase": 4,
          "title": "Presentasi: Prop dengan Tekstur Terencana",
          "target": "Menerapkan kemasan prop bertekstur dan menunjukkan hasil yang dapat diperiksa: sumber lengkap dan siswa menjelaskan keputusan seam serta kepadatan UV",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: simpan .blend beserta gambar atau Pack Resources lalu buka ulang dan presentasikan. Tunjukkan pembanding dengan masalah file gambar tidak ikut saat sumber dipindah",
          "practice": "Di Blender, simpan .blend beserta gambar atau Pack Resources lalu buka ulang dan presentasikan Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Sumber lengkap dan siswa menjelaskan keputusan seam serta kepadatan UV",
          "fault": "File gambar tidak ikut saat sumber dipindah",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-pemula-S16-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Texturing dan UV. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, simpan .blend beserta gambar atau Pack Resources lalu buka ulang dan presentasikan Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 17,
          "project": 3,
          "phase": 1,
          "title": "Rancang massa dan siluet",
          "target": "Dua alternatif memperlihatkan perbedaan proporsi yang disengaja.",
          "demo": "Peragakan satu bagian kecil: Pecah makhluk menjadi tiga massa sederhana; buat dua sketsa. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Pecah makhluk menjadi tiga massa sederhana; buat dua sketsa.",
          "check": "Dua alternatif memperlihatkan perbedaan proporsi yang disengaja.",
          "fault": "Detail wajah dibuat sebelum massa besar terbaca",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S17-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:gesture",
          "explanation": [
            "Proporsi adalah perbandingan antarbagian. Gesture menunjukkan arah aksi, sedangkan siluet membantu mengenali pose dan identitas tanpa detail.",
            "Mulai dari bentuk besar dan garis aksi. Bandingkan dua pose atau ekspresi sambil mempertahankan ciri tokoh yang sama."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Pecah makhluk menjadi tiga massa sederhana; buat dua sketsa.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 18,
          "project": 3,
          "phase": 1,
          "title": "Model dasar low-poly",
          "target": "Massa utama terbaca dari depan dan samping tanpa sculpt.",
          "demo": "Peragakan satu bagian kecil: Bentuk kepala dan badan dari mesh sederhana; gunakan model ringan. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Bentuk kepala dan badan dari mesh sederhana; gunakan model ringan.",
          "check": "Massa utama terbaca dari depan dan samping tanpa sculpt.",
          "fault": "Detail wajah dibuat sebelum massa besar terbaca",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S18-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Bentuk kepala dan badan dari mesh sederhana; gunakan model ringan.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 19,
          "project": 3,
          "phase": 2,
          "title": "Perbaiki volume utama",
          "target": "Perbaikan volume mempunyai alasan yang terlihat.",
          "demo": "Peragakan satu bagian kecil: Ubah satu proporsi dan bandingkan siluet sebelum–sesudah. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Ubah satu proporsi dan bandingkan siluet sebelum–sesudah.",
          "check": "Perbaikan volume mempunyai alasan yang terlihat.",
          "fault": "Brush terlalu kuat merusak volume dan simetri",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S19-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Ubah satu proporsi dan bandingkan siluet sebelum–sesudah.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 20,
          "project": 3,
          "phase": 2,
          "title": "Modeling bentuk sekunder",
          "target": "Bagian pendukung menyatu dengan massa dan tidak memerlukan detail permukaan.",
          "demo": "Peragakan satu bagian kecil: Tambahkan satu bagian pendukung dengan Extrude; sculpt hanya pada salinan opsional. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Tambahkan satu bagian pendukung dengan Extrude; sculpt hanya pada salinan opsional.",
          "check": "Bagian pendukung menyatu dengan massa dan tidak memerlukan detail permukaan.",
          "fault": "Brush terlalu kuat merusak volume dan simetri",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S20-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Tambahkan satu bagian pendukung dengan Extrude; sculpt hanya pada salinan opsional.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 21,
          "project": 3,
          "phase": 3,
          "title": "Geometri ringan dan mode opsional",
          "target": "Model ringan tetap mempunyai siluet jelas; pilihan sculpt tidak memengaruhi kelulusan inti.",
          "demo": "Peragakan satu bagian kecil: Periksa jumlah geometri serta permukaan; coba Grab/Remesh hanya jika fondasi siap. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Periksa jumlah geometri serta permukaan; coba Grab/Remesh hanya jika fondasi siap.",
          "check": "Model ringan tetap mempunyai siluet jelas; pilihan sculpt tidak memengaruhi kelulusan inti.",
          "fault": "Remesh menambah beban mesh tanpa manfaat terlihat",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S21-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Periksa jumlah geometri serta permukaan; coba Grab/Remesh hanya jika fondasi siap.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 22,
          "project": 3,
          "phase": 3,
          "title": "Detail sekunder terbatas",
          "target": "Detail mendukung bentuk dan bukan menutupi proporsi yang salah.",
          "demo": "Peragakan satu bagian kecil: Pilih satu detail yang membantu identitas, lalu periksa tiga sudut. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Pilih satu detail yang membantu identitas, lalu periksa tiga sudut.",
          "check": "Detail mendukung bentuk dan bukan menutupi proporsi yang salah.",
          "fault": "Remesh menambah beban mesh tanpa manfaat terlihat",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S22-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Pilih satu detail yang membantu identitas, lalu periksa tiga sudut.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 23,
          "project": 3,
          "phase": 4,
          "title": "Material dan studio model",
          "target": "Tiga tampilan memperlihatkan bentuk tanpa bagian terpotong.",
          "demo": "Peragakan satu bagian kecil: Gunakan material sederhana serta kamera untuk menunjukkan siluet dan kontak. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Gunakan material sederhana serta kamera untuk menunjukkan siluet dan kontak.",
          "check": "Tiga tampilan memperlihatkan bentuk tanpa bagian terpotong.",
          "fault": "Render satu sudut menyembunyikan masalah siluet",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S23-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:structure",
          "explanation": [
            "Blockout menyusun massa utama pada skala yang konsisten sebelum detail. Lantai memberi acuan pijakan; detail sekunder harus mendukung bentuk utama.",
            "Gunakan sedikit bentuk, periksa depan–samping–kamera dan cari objek melayang. Tambahkan detail hanya setelah proporsi serta susunan terbaca."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Gunakan material sederhana serta kamera untuk menunjukkan siluet dan kontak.",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 24,
          "project": 3,
          "phase": 4,
          "title": "Presentasi: Makhluk Stylized: Bentuk Dasar",
          "target": "Siswa menjelaskan pilihan bentuk dan sumber dapat dibuka ulang.",
          "demo": "Peragakan satu bagian kecil: Demonstrasikan model, dua alternatif dan satu revisi; low-poly merupakan hasil yang sah. Minta prediksi sebelum mencoba dan bandingkan hasilnya.",
          "practice": "Demonstrasikan model, dua alternatif dan satu revisi; low-poly merupakan hasil yang sah.",
          "check": "Siswa menjelaskan pilihan bentuk dan sumber dapat dibuka ulang.",
          "fault": "Render satu sudut menyembunyikan masalah siluet",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-pemula-S24-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Demonstrasikan model, dua alternatif dan satu revisi; low-poly merupakan hasil yang sah.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 25,
          "project": 4,
          "phase": 1,
          "title": "Diagram alur node material",
          "target": "Menerapkan diagram alur node material dan menunjukkan hasil yang dapat diperiksa: siswa membedakan tekstur, shader, serta output material",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: gambar alur Noise ke Color Ramp ke Base Color shader dan Output. Tunjukkan pembanding dengan masalah node berhenti sebelum shader output atau pola tidak terbaca",
          "practice": "Di Blender, gambar alur Noise ke Color Ramp ke Base Color shader dan Output",
          "check": "Siswa membedakan tekstur, shader, serta output material",
          "fault": "Node berhenti sebelum shader output atau pola tidak terbaca",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S25-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, gambar alur Noise ke Color Ramp ke Base Color shader dan Output",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 26,
          "project": 4,
          "phase": 1,
          "title": "Bangun material procedural",
          "target": "Menerapkan bangun material procedural dan menunjukkan hasil yang dapat diperiksa: satu perubahan pola dapat ditelusuri ke node yang tepat",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat jaringan minimum pada objek uji dan bandingkan dua nilai skala. Tunjukkan pembanding dengan masalah node berhenti sebelum shader output atau pola tidak terbaca",
          "practice": "Di Blender, buat jaringan minimum pada objek uji dan bandingkan dua nilai skala",
          "check": "Satu perubahan pola dapat ditelusuri ke node yang tepat",
          "fault": "Node berhenti sebelum shader output atau pola tidak terbaca",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S26-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat jaringan minimum pada objek uji dan bandingkan dua nilai skala",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 27,
          "project": 4,
          "phase": 2,
          "title": "Kontrol warna serta roughness",
          "target": "Menerapkan kontrol warna serta roughness dan menunjukkan hasil yang dapat diperiksa: material terbaca pada kondisi cahaya yang konsisten",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pilih palet dan roughness dengan kamera serta lampu tetap. Tunjukkan pembanding dengan masalah skala pola berubah tak terduga karena transform",
          "practice": "Di Blender, pilih palet dan roughness dengan kamera serta lampu tetap",
          "check": "Material terbaca pada kondisi cahaya yang konsisten",
          "fault": "Skala pola berubah tak terduga karena transform",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S27-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pilih palet dan roughness dengan kamera serta lampu tetap",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 28,
          "project": 4,
          "phase": 2,
          "title": "Rencana aksi dan frame rate",
          "target": "Menerapkan rencana aksi dan frame rate dan menunjukkan hasil yang dapat diperiksa: rentang frame dan parameter bergerak sesuai rencana aksi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat tiga pose atau sudut rotasi pada durasi 3 detik dengan 24 fps. Tunjukkan pembanding dengan masalah skala pola berubah tak terduga karena transform",
          "practice": "Di Blender, buat tiga pose atau sudut rotasi pada durasi 3 detik dengan 24 fps",
          "check": "Rentang frame dan parameter bergerak sesuai rencana aksi",
          "fault": "Skala pola berubah tak terduga karena transform",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S28-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat tiga pose atau sudut rotasi pada durasi 3 detik dengan 24 fps",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 29,
          "project": 4,
          "phase": 3,
          "title": "Transform keyframe",
          "target": "Menerapkan transform keyframe dan menunjukkan hasil yang dapat diperiksa: gerak tidak melompat akibat origin atau objek yang salah",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pasang Location atau Rotation keyframe pada objek dengan origin sesuai. Tunjukkan pembanding dengan masalah rotasi meloncat atau interpolasi tidak sesuai aksi",
          "practice": "Di Blender, pasang Location atau Rotation keyframe pada objek dengan origin sesuai",
          "check": "Gerak tidak melompat akibat origin atau objek yang salah",
          "fault": "Rotasi meloncat atau interpolasi tidak sesuai aksi",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S29-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:transform",
          "explanation": [
            "Transform objek meliputi posisi, rotasi dan skala pada X, Y, Z. Skala objek berbeda dari ukuran mesh di Edit Mode.",
            "Batasi perubahan pada satu sumbu. Periksa dimensi dan pijakan; sebelum modifier atau UV, periksa apakah skala perlu diterapkan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pasang Location atau Rotation keyframe pada objek dengan origin sesuai",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 30,
          "project": 4,
          "phase": 3,
          "title": "Interpolasi dan Graph Editor",
          "target": "Menerapkan interpolasi dan Graph Editor dan menunjukkan hasil yang dapat diperiksa: timing mendukung aksi dan siswa menunjukkan penyebab percepatan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan Linear serta Bezier lalu perbaiki satu kurva. Tunjukkan pembanding dengan masalah rotasi meloncat atau interpolasi tidak sesuai aksi",
          "practice": "Di Blender, bandingkan Linear serta Bezier lalu perbaiki satu kurva",
          "check": "Timing mendukung aksi dan siswa menunjukkan penyebab percepatan",
          "fault": "Rotasi meloncat atau interpolasi tidak sesuai aksi",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S30-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan Linear serta Bezier lalu perbaiki satu kurva",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 31,
          "project": 4,
          "phase": 4,
          "title": "Uji node sepanjang gerak",
          "target": "Menerapkan uji node sepanjang gerak dan menunjukkan hasil yang dapat diperiksa: pola material stabil dan seluruh objek masuk kamera sepanjang gerak",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: periksa awal-tengah-akhir lalu render urutan PNG kecil. Tunjukkan pembanding dengan masalah urutan png salah rentang atau frame rate",
          "practice": "Di Blender, periksa awal-tengah-akhir lalu render urutan PNG kecil",
          "check": "Pola material stabil dan seluruh objek masuk kamera sepanjang gerak",
          "fault": "Urutan PNG salah rentang atau frame rate",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-pemula-S31-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, periksa awal-tengah-akhir lalu render urutan PNG kecil",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 17,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 32,
          "project": 4,
          "phase": 4,
          "title": "Presentasi: Material dan Gerak Pendek",
          "target": "Menerapkan presentasi material bergerak dan menunjukkan hasil yang dapat diperiksa: siswa menjelaskan satu keputusan material dan satu revisi timing",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: putar hasil, tunjukkan jaringan node, dan serahkan .blend serta urutan gambar. Tunjukkan pembanding dengan masalah urutan png salah rentang atau frame rate",
          "practice": "Di Blender, putar hasil, tunjukkan jaringan node, dan serahkan .blend serta urutan gambar Kerjakan perubahan di Blender; serahkan sumber .blend, urutan PNG animasi, preview, dan catatan fps/durasi, dan catatan uji.",
          "check": "Siswa menjelaskan satu keputusan material dan satu revisi timing",
          "fault": "Urutan PNG salah rentang atau frame rate",
          "support": "Mentor memberi satu demo kecil lalu siswa membuat variasi. Periksa bentuk besar sebelum detail dan uji render kecil. Render panjang dapat dijalankan setelah sesi dengan folder serta pengaturan yang sudah diverifikasi.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-pemula-S32-kode-siswa",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Simple node dan animation. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, urutan PNG animasi, preview, dan catatan fps/durasi, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, putar hasil, tunjukkan jaringan node, dan serahkan .blend serta urutan gambar Kerjakan perubahan di Blender; serahkan sumber .blend, urutan PNG animasi, preview, dan catatan fps/durasi, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Contoh kecil dan bantuan bertahap tersedia.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        }
      ],
      "toolRevision": "tools-2026-10-21",
      "toolIds": [
        "blender"
      ],
      "setup": "Siapkan Blender versi yang diuji pada perangkat kelas; catat versi, renderer, serta waktu render uji kecil. Gunakan mouse atau emulasi navigasi yang sesuai. Uji simpan-buka .blend dan PNG; simpan tekstur serta keluaran pada folder terpisah. Untuk animasi, uji timeline dan render urutan PNG; untuk VFX siapkan plate kamera diam, Compositor, Video Sequencer, serta uji ekspor video pendek sebelum kelas.",
      "curriculumRevision": "3d-2026-10-22-v1",
      "placement": [
        "Navigasikan scene, pilih objek, dan ubah transform satu sumbu tanpa mengubah objek lain.",
        "Revisi satu mesh memakai Edit Mode lalu periksa siluet, normal, serta persinggungan.",
        "Atur kamera dan cahaya, simpan .blend, lalu buka ulang serta periksa PNG.",
        "Untuk SMA Lanjutan, jelaskan satu seam UV, satu cabang node material, serta tiga keyframe transform; berikan penguatan pada bagian yang belum mandiri."
      ],
      "learningApproach": "Contoh kecil → prediksi → latihan terbimbing → variasi mandiri → satu revisi.",
      "assessmentPolicy": "Nilai konsep, keputusan visual, teknik dan proses secara terpisah: perlu contoh langsung / mampu dengan petunjuk / mandiri. Kerapian atau kemiripan gambar AI bukan ukuran tunggal.",
      "pilotPolicy": "Catat waktu efektif, bagian sulit, bantuan dan hasil tugas transfer saat uji kelas. Gunakan waktu pengayaan untuk penguatan jika hasil minimum belum tercapai.",
      "hardwareSupport": "Gunakan model ringan dan render kecil untuk latihan; uji pengaturan pada perangkat kelas. Jangan menilai siswa dari lamanya render."
    },
    {
      "id": "sma-lanjutan",
      "age": "SMA",
      "level": "lanjutan",
      "name": "SMA · Lanjutan",
      "entry": "Dapat menavigasi Blender, memilih mode yang tepat, membuat serta merevisi mesh dasar, mengatur material dan kamera, lalu menyimpan .blend serta render. Untuk SMA, dapat membuat UV sederhana, sculpt bentuk besar, membaca node material dasar, dan mengatur transform keyframe. Bekal diamati melalui audit proyek pertama.",
      "target": "Mengintegrasikan modeling serta sculpting terarah, shader dan tekstur yang dapat direvisi, penyiapan aset untuk shot, serta compositing menjadi video VFX kamera diam dengan bukti proses dan uji keluaran.",
      "scope": "32 sesi × 1 jam per program; empat proyek × delapan sesi. Quick recap pada dua sesi pertama. Empat proyek: modeling + sculpting prop hero, node + texturing, aset untuk shot VFX, lalu video integrasi kamera diam 3–5 detik. Proyek ketiga dan keempat berkelanjutan memakai aset milik siswa. Tidak mencakup simulasi berat, karakter ber-rig, atau camera solve sebagai syarat kelulusan.",
      "adaptation": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
      "projects": [
        {
          "name": "Prop Hero: Modeling dan Sculpting",
          "topic": "Quick recap, advanced modeling dan sculpting",
          "out": "Satu prop hero kecil dengan konstruksi bersih dan kerusakan terbatas yang terarah.",
          "novelty": "Siswa merancang konstruksi prop lalu memadukan modeling dan sculpting dengan batas geometri yang masuk akal. Keputusan modifier, resolusi, serta kerusakan diuji dari beberapa sudut, sehingga kualitas tidak bergantung pada satu render yang menutupi masalah.",
          "stages": [
            {
              "title": "Quick recap, advanced modeling dan sculpting · rancangan dan audit",
              "task": "Di Blender, uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak; pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt",
              "check": "Rencana memisahkan bentuk utama, sekunder, serta area kerusakan",
              "fault": "Brief menuntut detail di luar skala serta durasi kursus"
            },
            {
              "title": "Quick recap, advanced modeling dan sculpting · konstruksi",
              "task": "Di Blender, bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya; buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal",
              "check": "Bentuk sekunder menyatu dengan konstruksi tanpa face rusak",
              "fault": "Modifier atau remesh merusak siluet dan menambah geometri tanpa tujuan"
            },
            {
              "title": "Quick recap, advanced modeling dan sculpting · uji kualitas",
              "task": "Di Blender, pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan; bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan",
              "check": "Detail penting dipertahankan dengan beban mesh yang dapat dijelaskan",
              "fault": "Kerusakan sculpt tidak mengikuti konstruksi prop"
            },
            {
              "title": "Quick recap, advanced modeling dan sculpting · revisi brief",
              "task": "Di Blender, buat render netral tiga sudut dan tandai masalah shading serta konstruksi; ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit",
              "check": "Siswa mempertahankan identitas prop sambil memperbaiki kelemahan yang terukur; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang",
              "fault": "Kualitas hanya lolos dari satu sudut dan tidak ada bukti revisi"
            }
          ],
          "steps": [
            "Di Blender, uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak; pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt",
            "Di Blender, bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya; buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal",
            "Di Blender, pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan; bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan",
            "Di Blender, buat render netral tiga sudut dan tandai masalah shading serta konstruksi; ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit"
          ],
          "checks": [
            "Satu prop hero kecil dengan konstruksi bersih dan kerusakan terbatas yang terarah.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Brief menuntut detail di luar skala serta durasi kursus",
            "Modifier atau remesh merusak siluet dan menambah geometri tanpa tujuan",
            "Kerusakan sculpt tidak mengikuti konstruksi prop",
            "Kualitas hanya lolos dari satu sudut dan tidak ada bukti revisi"
          ],
          "recipe": "Versi minimum: Satu prop hero kecil dengan konstruksi bersih dan kerusakan terbatas yang terarah. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak; pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt. 2. Di Blender, bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya; buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal. 3. Di Blender, pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan; bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan. 4. Di Blender, buat render netral tiga sudut dan tandai masalah shading serta konstruksi; ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Recap dilakukan pada dua sesi pertama melalui audit prop dan revisi. Setelah itu gunakan modifier yang terkontrol, bevel, sculpt bentuk sekunder serta remesh pada salinan. Lanjutan berarti keputusan konstruksi dan diagnosis mandiri pada skala kecil, bukan memuat seluruh teknik produksi industri.",
          "decisions": [
            "Pilih bagian yang dibuat dengan modeling dan bagian yang membutuhkan sculpt.",
            "Tentukan densitas geometri berdasarkan detail yang terlihat pada ukuran akhir."
          ],
          "transfer": "Mentor meminta satu sisi artefak pecah tetapi siluet khas tetap dikenali. Siswa memperbarui konstruksi serta sculpt, membandingkan tiga sudut, dan menjelaskan biaya geometri dari revisinya.",
          "art": "model3d-sma-lanjutan-p1-ai.png",
          "number": 1,
          "start": 1,
          "end": 8,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-lanjutan-p1-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Satu prop hero kecil dengan konstruksi bersih dan kerusakan terbatas yang terarah.",
          "minimumChecks": [
            "Satu prop hero kecil dengan konstruksi bersih dan kerusakan terbatas yang terarah.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Prop Hero: Modeling dan Sculpting. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Rencana memisahkan bentuk utama, sekunder, serta area kerusakan",
            "Bentuk sekunder menyatu dengan konstruksi tanpa face rusak",
            "Detail penting dipertahankan dengan beban mesh yang dapat dijelaskan",
            "Siswa mempertahankan identitas prop sambil memperbaiki kelemahan yang terukur; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak; pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt. 2. Di Blender, bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya; buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal. 3. Di Blender, pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan; bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan. 4. Di Blender, buat render netral tiga sudut dan tandai masalah shading serta konstruksi; ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Recap dilakukan pada dua sesi pertama melalui audit prop dan revisi. Setelah itu gunakan modifier yang terkontrol, bevel, sculpt bentuk sekunder serta remesh pada salinan. Lanjutan berarti keputusan konstruksi dan diagnosis mandiri pada skala kecil, bukan memuat seluruh teknik produksi industri."
        },
        {
          "name": "Material Hero Berbasis Node",
          "topic": "Advanced node dan texturing",
          "out": "Satu material hero dengan mask, parameter terlabel dan dua kondisi yang teruji.",
          "novelty": "Siswa menggabungkan UV image dan procedural mask sebagai sistem material yang dapat diuji per cabang. Tantangannya menjaga skala, fungsi input data, serta respons permukaan ketika kondisi cahaya dan brief berubah, bukan sekadar memperbanyak node.",
          "stages": [
            {
              "title": "Advanced node dan texturing · rancangan dan audit",
              "task": "Di Blender, tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump; cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan",
              "check": "UV dan penamaan gambar siap untuk jaringan yang dapat ditelusuri",
              "fault": "Input warna dan data permukaan diperlakukan sama"
            },
            {
              "title": "Advanced node dan texturing · konstruksi",
              "task": "Di Blender, hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol; atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus",
              "check": "Batas mask dapat diprediksi dari nilai yang dipilih",
              "fault": "Mask mencampur material tanpa hubungan dengan bentuk atau skala"
            },
            {
              "title": "Advanced node dan texturing · uji kualitas",
              "task": "Di Blender, atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data; namai node atau frame lalu dokumentasikan tiga parameter pengendali",
              "check": "Orang lain dapat menemukan parameter skala, aus, serta roughness",
              "fault": "Roughness dan Bump merusak pembacaan prop"
            },
            {
              "title": "Advanced node dan texturing · revisi brief",
              "task": "Di Blender, render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat; ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node",
              "check": "Siswa menunjukkan parameter penyebab perubahan dan sumber dapat dibuka ulang; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang",
              "fault": "Tekstur eksternal atau parameter perubahan tidak terdokumentasi"
            }
          ],
          "steps": [
            "Di Blender, tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump; cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan",
            "Di Blender, hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol; atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus",
            "Di Blender, atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data; namai node atau frame lalu dokumentasikan tiga parameter pengendali",
            "Di Blender, render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat; ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node"
          ],
          "checks": [
            "Satu material hero dengan mask, parameter terlabel dan dua kondisi yang teruji.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Input warna dan data permukaan diperlakukan sama",
            "Mask mencampur material tanpa hubungan dengan bentuk atau skala",
            "Roughness dan Bump merusak pembacaan prop",
            "Tekstur eksternal atau parameter perubahan tidak terdokumentasi"
          ],
          "recipe": "Versi minimum: Satu material hero dengan mask, parameter terlabel dan dua kondisi yang teruji. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump; cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan. 2. Di Blender, hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol; atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus. 3. Di Blender, atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data; namai node atau frame lalu dokumentasikan tiga parameter pengendali. 4. Di Blender, render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat; ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan Image Texture buatan sendiri, koordinat yang tepat, Noise, Color Ramp, Mix, roughness, Bump, Principled BSDF, dan Material Output. Node material ditata bernama atau dalam frame; fokus diagnosis jaringan, bukan jumlah node. Atur data warna versus non-color sesuai pemakaian.",
          "decisions": [
            "Pilih detail yang memerlukan gambar dan detail yang cukup procedural.",
            "Tentukan tiga parameter utama agar perubahan kondisi tetap terkontrol."
          ],
          "transfer": "Mentor meminta versi lembap pada permukaan yang sama. Siswa mengubah mask serta roughness secukupnya, mempertahankan skala tekstur dan detail utama, lalu membandingkan hasil di dua kondisi cahaya.",
          "art": "model3d-sma-lanjutan-p2-ai.png",
          "number": 2,
          "start": 9,
          "end": 16,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG render dan catatan proses",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-lanjutan-p2-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Satu material hero dengan mask, parameter terlabel dan dua kondisi yang teruji.",
          "minimumChecks": [
            "Satu material hero dengan mask, parameter terlabel dan dua kondisi yang teruji.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Material Hero Berbasis Node. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "UV dan penamaan gambar siap untuk jaringan yang dapat ditelusuri",
            "Batas mask dapat diprediksi dari nilai yang dipilih",
            "Orang lain dapat menemukan parameter skala, aus, serta roughness",
            "Siswa menunjukkan parameter penyebab perubahan dan sumber dapat dibuka ulang; sumber .blend dan PNG render dan catatan proses tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump; cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan. 2. Di Blender, hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol; atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus. 3. Di Blender, atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data; namai node atau frame lalu dokumentasikan tiga parameter pengendali. 4. Di Blender, render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat; ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan Image Texture buatan sendiri, koordinat yang tepat, Noise, Color Ramp, Mix, roughness, Bump, Principled BSDF, dan Material Output. Node material ditata bernama atau dalam frame; fokus diagnosis jaringan, bukan jumlah node. Atur data warna versus non-color sesuai pemakaian."
        },
        {
          "name": "Aset 3D Siap Shot VFX",
          "topic": "Make asset for VFX",
          "out": "Aset berpijak pada satu frame plate kamera diam; RGBA dan dependensi diperiksa.",
          "novelty": "Aset dinilai melalui kebutuhan shot nyata: skala, origin, bagian terlihat, kemasan dependensi, alpha, serta kecocokan cahaya. Siswa menyesuaikan model dan material sendiri untuk integrasi footage, sehingga hasilnya melampaui render objek terisolasi.",
          "stages": [
            {
              "title": "Make asset for VFX · rancangan dan audit",
              "task": "Di Blender, amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong; tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero",
              "check": "Spesifikasi terkait kebutuhan plate dan tidak menambah detail yang tak terlihat",
              "fault": "Aset tidak sesuai sudut serta skala footage"
            },
            {
              "title": "Make asset for VFX · konstruksi",
              "task": "Di Blender, rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan; rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder",
              "check": "Aset tidak kehilangan gambar dan pengendali material dapat ditemukan",
              "fault": "Origin dan susunan sumber menyulitkan penempatan shot"
            },
            {
              "title": "Make asset for VFX · uji kualitas",
              "task": "Di Blender, cocokkan bidang serta sudut prop dengan plate kamera terkunci; atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji",
              "check": "Arah bayangan dan posisi kontak tidak membuat prop tampak melayang",
              "fault": "Arah cahaya serta kontak berbeda dari plate"
            },
            {
              "title": "Make asset for VFX · revisi brief",
              "task": "Di Blender, aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate; tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot",
              "check": "Aset dapat dipakai pada proyek video dengan skala, cahaya, serta sumber yang jelas; sumber .blend dan PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot tersedia serta dapat dibuka ulang",
              "fault": "Render menghilangkan alpha atau gambar tekstur tidak terkemas"
            }
          ],
          "steps": [
            "Di Blender, amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong; tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero",
            "Di Blender, rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan; rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder",
            "Di Blender, cocokkan bidang serta sudut prop dengan plate kamera terkunci; atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji",
            "Di Blender, aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate; tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot"
          ],
          "checks": [
            "Aset berpijak pada satu frame plate kamera diam; RGBA dan dependensi diperiksa.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "Aset tidak sesuai sudut serta skala footage",
            "Origin dan susunan sumber menyulitkan penempatan shot",
            "Arah cahaya serta kontak berbeda dari plate",
            "Render menghilangkan alpha atau gambar tekstur tidak terkemas"
          ],
          "recipe": "Versi minimum: Aset berpijak pada satu frame plate kamera diam; RGBA dan dependensi diperiksa. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong; tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero. 2. Di Blender, rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan; rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder. 3. Di Blender, cocokkan bidang serta sudut prop dengan plate kamera terkunci; atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji. 4. Di Blender, aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate; tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan artefak hero milik siswa sebagai aset dengan revisi sesuai kebutuhan shot; bukan memulai karakter rumit baru. Mentor menyiapkan footage meja kamera terkunci 3–5 detik, permukaan jelas, eksposur tetap, tanpa objek melintas. Rancang shot dahulu lalu sesuaikan prop, kamera, cahaya, dan keluaran RGBA.",
          "decisions": [
            "Tentukan geometri serta detail yang perlu dipertahankan pada kamera shot.",
            "Pilih penempatan dan kontak yang sesuai bidang serta arah cahaya plate."
          ],
          "transfer": "Mentor mengubah ukuran dan posisi prop di atas meja. Siswa menyesuaikan skala, kontak, serta render uji RGBA tanpa mengubah plate, lalu memperlihatkan sumber yang tetap lengkap saat dibuka dari folder salinan.",
          "art": "model3d-sma-lanjutan-p3-ai.png",
          "number": 3,
          "start": 17,
          "end": 24,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-lanjutan-p3-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Aset berpijak pada satu frame plate kamera diam; RGBA dan dependensi diperiksa.",
          "minimumChecks": [
            "Aset berpijak pada satu frame plate kamera diam; RGBA dan dependensi diperiksa.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Aset 3D Siap Shot VFX. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Spesifikasi terkait kebutuhan plate dan tidak menambah detail yang tak terlihat",
            "Aset tidak kehilangan gambar dan pengendali material dapat ditemukan",
            "Arah bayangan dan posisi kontak tidak membuat prop tampak melayang",
            "Aset dapat dipakai pada proyek video dengan skala, cahaya, serta sumber yang jelas; sumber .blend dan PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong; tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero. 2. Di Blender, rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan; rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder. 3. Di Blender, cocokkan bidang serta sudut prop dengan plate kamera terkunci; atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji. 4. Di Blender, aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate; tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Rancangan konsep: Gunakan artefak hero milik siswa sebagai aset dengan revisi sesuai kebutuhan shot; bukan memulai karakter rumit baru. Mentor menyiapkan footage meja kamera terkunci 3–5 detik, permukaan jelas, eksposur tetap, tanpa objek melintas. Rancang shot dahulu lalu sesuaikan prop, kamera, cahaya, dan keluaran RGBA."
        },
        {
          "name": "Shot VFX: Objek di Dunia Nyata",
          "topic": "Video implementation untuk VFX",
          "out": "Shot kamera diam 3 detik, integrasi stabil dan breakdown sebelum–sesudah; gunakan aset proyek sebelumnya.",
          "novelty": "Proyek akhir mengintegrasikan aset buatan siswa dengan footage, bukan menampilkan turntable model. Siswa menjaga kontrak shot, menelusuri alpha, bayangan, serta warna, dan memvalidasi hasil bergerak sampai video dapat diputar ulang dengan bukti breakdown.",
          "stages": [
            {
              "title": "Video implementation untuk VFX · rancangan dan audit",
              "task": "Di Blender, tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir; letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame",
              "check": "Aset tidak bergeser dan ukuran sesuai bidang shot tanpa mengasumsikan camera tracking",
              "fault": "FPS resolusi dan rentang frame plate berbeda dari scene"
            },
            {
              "title": "Video implementation untuk VFX · konstruksi",
              "task": "Di Blender, hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor; uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor",
              "check": "Prop berpijak dan bayangan searah dengan plate tanpa halo tepi",
              "fault": "Alpha atau urutan compositing membuat plate tertutup"
            },
            {
              "title": "Video implementation untuk VFX · uji kualitas",
              "task": "Di Blender, sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli; render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji",
              "check": "Jumlah frame sesuai fps dan durasi serta file tidak hilang",
              "fault": "Cahaya kontak warna atau occlusion merusak integrasi"
            },
            {
              "title": "Video implementation untuk VFX · revisi brief",
              "task": "Di Blender, impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia; tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown",
              "check": "Siswa menunjukkan sebelum-sesudah dan menjelaskan batas kamera diam serta satu revisi integrasi; sumber .blend dan video VFX 3–5 detik, PNG sequence master, plate, dan breakdown tersedia serta dapat dibuka ulang",
              "fault": "Video tidak terputar atau kehilangan frame walau still render terlihat benar"
            }
          ],
          "steps": [
            "Di Blender, tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir; letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame",
            "Di Blender, hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor; uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor",
            "Di Blender, sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli; render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji",
            "Di Blender, impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia; tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown"
          ],
          "checks": [
            "Shot kamera diam 3 detik, integrasi stabil dan breakdown sebelum–sesudah; gunakan aset proyek sebelumnya.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan.",
            "Ada satu alternatif atau masukan, alasan revisi dan catatan bantuan."
          ],
          "faults": [
            "FPS resolusi dan rentang frame plate berbeda dari scene",
            "Alpha atau urutan compositing membuat plate tertutup",
            "Cahaya kontak warna atau occlusion merusak integrasi",
            "Video tidak terputar atau kehilangan frame walau still render terlihat benar"
          ],
          "recipe": "Versi minimum: Shot kamera diam 3 detik, integrasi stabil dan breakdown sebelum–sesudah; gunakan aset proyek sebelumnya. Setelah versi ini lolos, contoh pengembangan opsional: Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir; letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame. 2. Di Blender, hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor; uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor. 3. Di Blender, sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli; render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji. 4. Di Blender, impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia; tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Gunakan footage buatan sendiri atau latihan berizin dari mentor. Shadow Catcher memerlukan Cycles; uji pass compositor sebelum kelas. Jika codec belum cocok, pertahankan PNG sequence master dan selesaikan alur ekspor video bersama mentor. Rancangan konsep: Gunakan aset proyek sebelumnya dan footage terkunci yang sama. Compositor memadukan plate dan render RGBA dengan Alpha Over serta koreksi warna ringan. Jika memakai Shadow Catcher, gunakan Cycles dan uji pass compositor pada versi kelas; alternatifnya render bidang shadow/contact terpisah dan gabungkan mask terkontrol. Render PNG sequence kecil lalu susun di Video Sequencer untuk ekspor video yang diuji. Camera tracking hanya pengayaan setelah target inti selesai.",
          "decisions": [
            "Pilih prioritas revisi dari skala, kontak, cahaya, dan warna berdasarkan frame pembanding.",
            "Tentukan pengaturan render yang cukup terbaca dan selesai pada perangkat kelas."
          ],
          "transfer": "Mentor meminta versi shot bersuasana lebih hangat. Siswa memperbarui cahaya dan keseimbangan warna aset secara terarah, menjaga kecocokan dengan plate, lalu mengekspor ulang serta membandingkan frame awal-tengah-akhir.",
          "art": "model3d-sma-lanjutan-p4-ai.png",
          "number": 4,
          "start": 25,
          "end": 32,
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "deliverables": "video VFX 3–5 detik, PNG sequence master, plate, dan breakdown",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "toolNote": "Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Gunakan footage buatan sendiri atau latihan berizin dari mentor. Shadow Catcher memerlukan Cycles; uji pass compositor sebelum kelas. Jika codec belum cocok, pertahankan PNG sequence master dan selesaikan alur ekspor video bersama mentor.",
          "artWidth": 1536,
          "artHeight": 1024,
          "artSourceType": "ai-generated-concept",
          "aiPromptId": "model3d-sma-lanjutan-p4-ai",
          "aiCaption": "Contoh konsep hasil generasi AI (ChatGPT), bukan render Blender, karya siswa, atau footage asli. Tingkat detail disesuaikan tujuan belajar. PNG ini merupakan acuan visual; model .blend, UV, material node, gerak, dan video tetap dibuat serta diuji di Blender.",
          "minimumOutcome": "Shot kamera diam 3 detik, integrasi stabil dan breakdown sebelum–sesudah; gunakan aset proyek sebelumnya.",
          "minimumChecks": [
            "Shot kamera diam 3 detik, integrasi stabil dan breakdown sebelum–sesudah; gunakan aset proyek sebelumnya.",
            "Pilihan visual mendukung fokus atau aksi utama; diuji pada ukuran/durasi penggunaan.",
            "Sumber dapat dibuka ulang dan satu revisi dapat dijelaskan."
          ],
          "enrichment": "Setelah inti lolos, buat satu variasi bentuk atau cahaya pada aset yang sama dan bandingkan render.",
          "transferTask": "Penguji mengubah satu kebutuhan pada Shot VFX: Objek di Dunia Nyata. Buat satu alternatif, jelaskan pilihan visual, lalu uji tanpa menyalin urutan contoh.",
          "readinessGate": "Lanjut jika hasil minimum terbaca, sumber/ekspor berfungsi dan siswa dapat menerapkan satu perubahan serta menjelaskan alasannya. Catat bantuan; gunakan penguatan sebelum menambah konsep.",
          "referenceCriteria": [
            "Aset tidak bergeser dan ukuran sesuai bidang shot tanpa mengasumsikan camera tracking",
            "Prop berpijak dan bayangan searah dengan plate tanpa halo tepi",
            "Jumlah frame sesuai fps dan durasi serta file tidak hilang",
            "Siswa menunjukkan sebelum-sesudah dan menjelaskan batas kamera diam serta satu revisi integrasi; sumber .blend dan video VFX 3–5 detik, PNG sequence master, plate, dan breakdown tersedia serta dapat dibuka ulang"
          ],
          "referenceRecipe": "Persiapan Blender: Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. 1. Di Blender, tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir; letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame. 2. Di Blender, hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor; uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor. 3. Di Blender, sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli; render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji. 4. Di Blender, impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia; tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown. Simpan versi sebelum operasi yang mengubah mesh. Gambar di halaman adalah ilustrasi konsep, bukan render Blender atau sumber .blend. Render kecil dipakai untuk uji; berkas sumber, tekstur, serta hasil ekspor diserahkan terpisah. Gunakan footage buatan sendiri atau latihan berizin dari mentor. Shadow Catcher memerlukan Cycles; uji pass compositor sebelum kelas. Jika codec belum cocok, pertahankan PNG sequence master dan selesaikan alur ekspor video bersama mentor. Rancangan konsep: Gunakan aset proyek sebelumnya dan footage terkunci yang sama. Compositor memadukan plate dan render RGBA dengan Alpha Over serta koreksi warna ringan. Jika memakai Shadow Catcher, gunakan Cycles dan uji pass compositor pada versi kelas; alternatifnya render bidang shadow/contact terpisah dan gabungkan mask terkontrol. Render PNG sequence kecil lalu susun di Video Sequencer untuk ekspor video yang diuji. Camera tracking hanya pengayaan setelah target inti selesai."
        }
      ],
      "sessions": [
        {
          "number": 1,
          "project": 1,
          "phase": 1,
          "title": "Audit fondasi dan brief hero",
          "target": "Menerapkan audit fondasi dan brief hero dan menunjukkan hasil yang dapat diperiksa: bekal teramati dan kekurangan mendapat penguatan terarah tanpa mengulang onboarding penuh",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak. Tunjukkan pembanding dengan masalah brief menuntut detail di luar skala serta durasi kursus",
          "practice": "Di Blender, uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak",
          "check": "Bekal teramati dan kekurangan mendapat penguatan terarah tanpa mengulang onboarding penuh",
          "fault": "Brief menuntut detail di luar skala serta durasi kursus",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S01-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · rancangan dan audit",
          "independentDecision": "Pilih bagian yang dibuat dengan modeling dan bagian yang membutuhkan sculpt.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "onboarding",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "onboarding",
            "label": "Orientasi alat",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 10
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 20
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 10,
            "guidedMinutes": 10,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Sumber latihan baru; perangkat siap sebelum kelas.",
            "minimum": "Di Blender, uji transform, normal, kamera, material, serta simpan-buka lalu tetapkan brief artefak",
            "understanding": "Tutup lalu buka kembali sumber, ulangi satu tindakan tanpa mengikuti klik mentor dan jelaskan apa yang berubah.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 5,
              "max": 10,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Belajar orientasi alat dan simpan-buka ulang.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 2,
          "project": 1,
          "phase": 1,
          "title": "Revisi konstruksi dasar",
          "target": "Menerapkan revisi konstruksi dasar dan menunjukkan hasil yang dapat diperiksa: rencana memisahkan bentuk utama, sekunder, serta area kerusakan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt. Tunjukkan pembanding dengan masalah brief menuntut detail di luar skala serta durasi kursus",
          "practice": "Di Blender, pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt",
          "check": "Rencana memisahkan bentuk utama, sekunder, serta area kerusakan",
          "fault": "Brief menuntut detail di luar skala serta durasi kursus",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S02-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · rancangan dan audit",
          "independentDecision": "Pilih bagian yang dibuat dengan modeling dan bagian yang membutuhkan sculpt.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pilih satu masalah geometri pada blockout dan buat rencana modifier serta sculpt",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 3,
          "project": 1,
          "phase": 2,
          "title": "Hard-surface dengan modifier",
          "target": "Menerapkan hard-surface dengan modifier dan menunjukkan hasil yang dapat diperiksa: siluet serta ketebalan tetap terkontrol dan modifier mempunyai alasan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya. Tunjukkan pembanding dengan masalah modifier atau remesh merusak siluet dan menambah geometri tanpa tujuan",
          "practice": "Di Blender, bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya",
          "check": "Siluet serta ketebalan tetap terkontrol dan modifier mempunyai alasan",
          "fault": "Modifier atau remesh merusak siluet dan menambah geometri tanpa tujuan",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S03-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · konstruksi",
          "independentDecision": "Tentukan densitas geometri berdasarkan detail yang terlihat pada ukuran akhir.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:mesh",
          "explanation": [
            "Object Mode memilih objek utuh; Edit Mode mengubah mesh di dalamnya. Vertex adalah titik, edge menghubungkan titik dan face membentuk permukaan.",
            "Pilih satu vertex, edge lalu face pada kubus. Ubah satu bagian di Edit Mode dan bandingkan dengan memindahkan objek utuh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bangun prop dengan Extrude, Bevel, atau Mirror sesuai kebutuhan lalu audit urutannya",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 4,
          "project": 1,
          "phase": 2,
          "title": "Modeling bentuk sekunder",
          "target": "Menerapkan modeling bentuk sekunder dan menunjukkan hasil yang dapat diperiksa: bentuk sekunder menyatu dengan konstruksi tanpa face rusak",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal. Tunjukkan pembanding dengan masalah modifier atau remesh merusak siluet dan menambah geometri tanpa tujuan",
          "practice": "Di Blender, buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal",
          "check": "Bentuk sekunder menyatu dengan konstruksi tanpa face rusak",
          "fault": "Modifier atau remesh merusak siluet dan menambah geometri tanpa tujuan",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S04-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · konstruksi",
          "independentDecision": "Tentukan densitas geometri berdasarkan detail yang terlihat pada ukuran akhir.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shape",
          "explanation": [
            "Bentuk besar membangun struktur sebelum detail. Perbandingan tinggi, lebar dan hubungan antarbagian menentukan apakah objek mudah dikenali.",
            "Pecah acuan menjadi sedikit bentuk utama. Periksa proporsi dan siluet pada ukuran kecil sebelum menambah bagian pendukung."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat rongga atau panel fungsional dengan topology secukupnya lalu periksa normal",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 5,
          "project": 1,
          "phase": 3,
          "title": "Sculpt kerusakan terarah",
          "target": "Menerapkan sculpt kerusakan terarah dan menunjukkan hasil yang dapat diperiksa: kerusakan mengikuti material serta penggunaan prop dan tidak merusak siluet utama",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan. Tunjukkan pembanding dengan masalah kerusakan sculpt tidak mengikuti konstruksi prop",
          "practice": "Di Blender, pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan",
          "check": "Kerusakan mengikuti material serta penggunaan prop dan tidak merusak siluet utama",
          "fault": "Kerusakan sculpt tidak mengikuti konstruksi prop",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S05-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · uji kualitas",
          "independentDecision": "Pilih bagian yang dibuat dengan modeling dan bagian yang membutuhkan sculpt.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:sculpt",
          "explanation": [
            "Sculpt mengubah massa permukaan. Grab menggeser bentuk besar; Draw menambah volume dan Smooth meratakan. Resolusi tinggi menambah beban, bukan otomatis memperbaiki bentuk.",
            "Kerjakan massa dan siluet pada resolusi rendah. Modeling dasar yang bersih boleh menjadi hasil minimum; sculpt dipakai setelah fondasi siap."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, pada salinan resolusi cukup, sculpt retakan besar atau bagian aus di lokasi yang direncanakan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 6,
          "project": 1,
          "phase": 3,
          "title": "Evaluasi densitas mesh",
          "target": "Menerapkan evaluasi densitas mesh dan menunjukkan hasil yang dapat diperiksa: detail penting dipertahankan dengan beban mesh yang dapat dijelaskan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan. Tunjukkan pembanding dengan masalah kerusakan sculpt tidak mengikuti konstruksi prop",
          "practice": "Di Blender, bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan",
          "check": "Detail penting dipertahankan dengan beban mesh yang dapat dijelaskan",
          "fault": "Kerusakan sculpt tidak mengikuti konstruksi prop",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S06-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · uji kualitas",
          "independentDecision": "Pilih bagian yang dibuat dengan modeling dan bagian yang membutuhkan sculpt.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:sculpt",
          "explanation": [
            "Sculpt mengubah massa permukaan. Grab menggeser bentuk besar; Draw menambah volume dan Smooth meratakan. Resolusi tinggi menambah beban, bukan otomatis memperbaiki bentuk.",
            "Kerjakan massa dan siluet pada resolusi rendah. Modeling dasar yang bersih boleh menjadi hasil minimum; sculpt dipakai setelah fondasi siap."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, bandingkan versi sebelum-sesudah remesh atau simplifikasi pada salinan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 7,
          "project": 1,
          "phase": 4,
          "title": "Audit bentuk dari tiga kamera",
          "target": "Menerapkan audit bentuk dari tiga kamera dan menunjukkan hasil yang dapat diperiksa: siswa memisahkan kesalahan geometri dari kesalahan pencahayaan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: buat render netral tiga sudut dan tandai masalah shading serta konstruksi. Tunjukkan pembanding dengan masalah kualitas hanya lolos dari satu sudut dan tidak ada bukti revisi",
          "practice": "Di Blender, buat render netral tiga sudut dan tandai masalah shading serta konstruksi",
          "check": "Siswa memisahkan kesalahan geometri dari kesalahan pencahayaan",
          "fault": "Kualitas hanya lolos dari satu sudut dan tidak ada bukti revisi",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S07-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · revisi brief",
          "independentDecision": "Tentukan densitas geometri berdasarkan detail yang terlihat pada ukuran akhir.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, buat render netral tiga sudut dan tandai masalah shading serta konstruksi",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 8,
          "project": 1,
          "phase": 4,
          "title": "Presentasi: Prop Hero: Modeling dan Sculpting",
          "target": "Menerapkan revisi prop dari perubahan brief dan menunjukkan hasil yang dapat diperiksa: siswa mempertahankan identitas prop sambil memperbaiki kelemahan yang terukur",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit. Tunjukkan pembanding dengan masalah kualitas hanya lolos dari satu sudut dan tidak ada bukti revisi",
          "practice": "Di Blender, ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit Mentor meminta satu sisi artefak pecah tetapi siluet khas tetap dikenali. Siswa memperbarui konstruksi serta sculpt, membandingkan tiga sudut, dan menjelaskan biaya geometri dari revisinya. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Siswa mempertahankan identitas prop sambil memperbaiki kelemahan yang terukur",
          "fault": "Kualitas hanya lolos dari satu sudut dan tidak ada bukti revisi",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-lanjutan-S08-kode-siswa",
          "advancedDemand": "Quick recap, advanced modeling dan sculpting · revisi brief",
          "independentDecision": "Tentukan densitas geometri berdasarkan detail yang terlihat pada ukuran akhir.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Quick recap, advanced modeling dan sculpting. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah bagian hero sesuai permintaan mentor lalu serahkan sumber dan catatan audit Mentor meminta satu sisi artefak pecah tetapi siluet khas tetap dikenali. Siswa memperbarui konstruksi serta sculpt, membandingkan tiga sudut, dan menjelaskan biaya geometri dari revisinya. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 9,
          "project": 2,
          "phase": 1,
          "title": "Spesifikasi material hero",
          "target": "Menerapkan spesifikasi material hero dan menunjukkan hasil yang dapat diperiksa: rencana menyebut fungsi setiap cabang jaringan",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump. Tunjukkan pembanding dengan masalah input warna dan data permukaan diperlakukan sama",
          "practice": "Di Blender, tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump",
          "check": "Rencana menyebut fungsi setiap cabang jaringan",
          "fault": "Input warna dan data permukaan diperlakukan sama",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S09-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · rancangan dan audit",
          "independentDecision": "Pilih detail yang memerlukan gambar dan detail yang cukup procedural.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:brief",
          "explanation": [
            "Brief menjelaskan siapa yang melihat karya, pesan atau aksi yang perlu dipahami, dan batas hasil. Aset dibuat karena mendukung tujuan tersebut.",
            "Tuliskan satu tujuan dan hasil minimum. Buat dua pilihan kecil sebelum memilih; jelaskan pilihan berdasarkan tujuan, bukan hanya selera."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, tetapkan batu bersih dan aus serta gambar alur input, mask, warna, roughness, Bump",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 10,
          "project": 2,
          "phase": 1,
          "title": "Audit UV dan sumber tekstur",
          "target": "Menerapkan audit UV dan sumber tekstur dan menunjukkan hasil yang dapat diperiksa: uV dan penamaan gambar siap untuk jaringan yang dapat ditelusuri",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan. Tunjukkan pembanding dengan masalah input warna dan data permukaan diperlakukan sama",
          "practice": "Di Blender, cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan",
          "check": "UV dan penamaan gambar siap untuk jaringan yang dapat ditelusuri",
          "fault": "Input warna dan data permukaan diperlakukan sama",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S10-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · rancangan dan audit",
          "independentDecision": "Pilih detail yang memerlukan gambar dan detail yang cukup procedural.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, cek checker pada prop lalu simpan gambar warna serta gambar data bila digunakan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 17,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 11,
          "project": 2,
          "phase": 2,
          "title": "Bangun cabang image dan procedural",
          "target": "Menerapkan bangun cabang image dan procedural dan menunjukkan hasil yang dapat diperiksa: pola serta gambar dapat diuji terpisah sebelum digabung",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol. Tunjukkan pembanding dengan masalah mask mencampur material tanpa hubungan dengan bentuk atau skala",
          "practice": "Di Blender, hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol",
          "check": "Pola serta gambar dapat diuji terpisah sebelum digabung",
          "fault": "Mask mencampur material tanpa hubungan dengan bentuk atau skala",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S11-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · konstruksi",
          "independentDecision": "Tentukan tiga parameter utama agar perubahan kondisi tetap terkontrol.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, hubungkan gambar ke cabang warna dan Noise ke mask dengan koordinat terkontrol",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 12,
          "project": 2,
          "phase": 2,
          "title": "Mask dan pencampuran terarah",
          "target": "Menerapkan mask dan pencampuran terarah dan menunjukkan hasil yang dapat diperiksa: batas mask dapat diprediksi dari nilai yang dipilih",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus. Tunjukkan pembanding dengan masalah mask mencampur material tanpa hubungan dengan bentuk atau skala",
          "practice": "Di Blender, atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus",
          "check": "Batas mask dapat diprediksi dari nilai yang dipilih",
          "fault": "Mask mencampur material tanpa hubungan dengan bentuk atau skala",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S12-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · konstruksi",
          "independentDecision": "Tentukan tiga parameter utama agar perubahan kondisi tetap terkontrol.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:shader-mask",
          "explanation": [
            "Mask shader adalah nilai yang mengatur campuran dua masukan material: nilai rendah memilih satu sisi, nilai tinggi memilih sisi lain. Ini berbeda dari menghapus piksel gambar.",
            "Uji mask hitam, putih dan abu-abu pada faktor campuran. Prediksi area yang berubah lalu bandingkan render."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur Color Ramp serta Mix untuk memisahkan warna bersih dan aus",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 13,
          "project": 2,
          "phase": 3,
          "title": "Roughness Bump dan data warna",
          "target": "Menerapkan roughness Bump dan data warna dan menunjukkan hasil yang dapat diperiksa: perubahan detail permukaan dibedakan dari albedo dan siluet tetap terjaga",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data. Tunjukkan pembanding dengan masalah roughness dan bump merusak pembacaan prop",
          "practice": "Di Blender, atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data",
          "check": "Perubahan detail permukaan dibedakan dari albedo dan siluet tetap terjaga",
          "fault": "Roughness dan Bump merusak pembacaan prop",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S13-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · uji kualitas",
          "independentDecision": "Pilih detail yang memerlukan gambar dan detail yang cukup procedural.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur roughness serta Bump rendah dan cek pengaturan non-color untuk gambar data",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 14,
          "project": 2,
          "phase": 3,
          "title": "Kelola parameter dan jaringan",
          "target": "Menerapkan kelola parameter dan jaringan dan menunjukkan hasil yang dapat diperiksa: orang lain dapat menemukan parameter skala, aus, serta roughness",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: namai node atau frame lalu dokumentasikan tiga parameter pengendali. Tunjukkan pembanding dengan masalah roughness dan bump merusak pembacaan prop",
          "practice": "Di Blender, namai node atau frame lalu dokumentasikan tiga parameter pengendali",
          "check": "Orang lain dapat menemukan parameter skala, aus, serta roughness",
          "fault": "Roughness dan Bump merusak pembacaan prop",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S14-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · uji kualitas",
          "independentDecision": "Pilih detail yang memerlukan gambar dan detail yang cukup procedural.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:node",
          "explanation": [
            "Node material mengalirkan data melalui socket menuju shader dan output. Image Texture memberi gambar, Roughness mengatur kekasaran pantulan dan Bump mengubah kesan permukaan.",
            "Mulai jaringan minimum. Ubah satu parameter, bandingkan render dan jelaskan sambungan penyebabnya; Bump tidak mengubah siluet mesh."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, namai node atau frame lalu dokumentasikan tiga parameter pengendali",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 15,
          "project": 2,
          "phase": 4,
          "title": "Uji dua ukuran dan cahaya",
          "target": "Menerapkan uji dua ukuran dan cahaya dan menunjukkan hasil yang dapat diperiksa: karakter material konsisten tanpa bergantung satu arah lampu",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat. Tunjukkan pembanding dengan masalah tekstur eksternal atau parameter perubahan tidak terdokumentasi",
          "practice": "Di Blender, render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat",
          "check": "Karakter material konsisten tanpa bergantung satu arah lampu",
          "fault": "Tekstur eksternal atau parameter perubahan tidak terdokumentasi",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S15-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · revisi brief",
          "independentDecision": "Tentukan tiga parameter utama agar perubahan kondisi tetap terkontrol.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, render material dekat-jauh pada dua kondisi cahaya lalu revisi bagian terlalu kuat",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 16,
          "project": 2,
          "phase": 4,
          "title": "Presentasi: Material Hero Berbasis Node",
          "target": "Menerapkan versi material dari brief baru dan menunjukkan hasil yang dapat diperiksa: siswa menunjukkan parameter penyebab perubahan dan sumber dapat dibuka ulang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node. Tunjukkan pembanding dengan masalah tekstur eksternal atau parameter perubahan tidak terdokumentasi",
          "practice": "Di Blender, ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node Mentor meminta versi lembap pada permukaan yang sama. Siswa mengubah mask serta roughness secukupnya, mempertahankan skala tekstur dan detail utama, lalu membandingkan hasil di dua kondisi cahaya. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
          "check": "Siswa menunjukkan parameter penyebab perubahan dan sumber dapat dibuka ulang",
          "fault": "Tekstur eksternal atau parameter perubahan tidak terdokumentasi",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-lanjutan-S16-kode-siswa",
          "advancedDemand": "Advanced node dan texturing · revisi brief",
          "independentDecision": "Tentukan tiga parameter utama agar perubahan kondisi tetap terkontrol.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Advanced node dan texturing. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG render dan catatan proses, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, ubah prop dari bersih menjadi aus atau lembap lalu serahkan sumber tekstur serta node Mentor meminta versi lembap pada permukaan yang sama. Siswa mengubah mask serta roughness secukupnya, mempertahankan skala tekstur dan detail utama, lalu membandingkan hasil di dua kondisi cahaya. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG render dan catatan proses, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 17,
          "project": 3,
          "phase": 1,
          "title": "Breakdown plate dan kebutuhan aset",
          "target": "Menerapkan breakdown plate dan kebutuhan aset dan menunjukkan hasil yang dapat diperiksa: rencana memilih satu lokasi penempatan dan tidak membutuhkan camera solve",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong. Tunjukkan pembanding dengan masalah aset tidak sesuai sudut serta skala footage",
          "practice": "Di Blender, amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong",
          "check": "Rencana memilih satu lokasi penempatan dan tidak membutuhkan camera solve",
          "fault": "Aset tidak sesuai sudut serta skala footage",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S17-kode-siswa",
          "advancedDemand": "Make asset for VFX · rancangan dan audit",
          "independentDecision": "Tentukan geometri serta detail yang perlu dipertahankan pada kamera shot.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:plate",
          "explanation": [
            "Shot kamera diam dapat dicocokkan secara manual melalui ukuran, sudut pandang dan arah cahaya. Aset harus berpijak serta tetap stabil terhadap plate.",
            "Cocokkan satu frame dahulu, lalu periksa awal–tengah–akhir. Camera tracking bukan syarat; gunakan footage sendiri atau berizin."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, amati footage kamera diam lalu tandai permukaan, arah cahaya, skala, serta ruang kosong",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 18,
          "project": 3,
          "phase": 1,
          "title": "Spesifikasi aset untuk shot",
          "target": "Menerapkan spesifikasi aset untuk shot dan menunjukkan hasil yang dapat diperiksa: spesifikasi terkait kebutuhan plate dan tidak menambah detail yang tak terlihat",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero. Tunjukkan pembanding dengan masalah aset tidak sesuai sudut serta skala footage",
          "practice": "Di Blender, tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero",
          "check": "Spesifikasi terkait kebutuhan plate dan tidak menambah detail yang tak terlihat",
          "fault": "Aset tidak sesuai sudut serta skala footage",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S18-kode-siswa",
          "advancedDemand": "Make asset for VFX · rancangan dan audit",
          "independentDecision": "Tentukan geometri serta detail yang perlu dipertahankan pada kamera shot.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:brief",
          "explanation": [
            "Brief menjelaskan siapa yang melihat karya, pesan atau aksi yang perlu dipahami, dan batas hasil. Aset dibuat karena mendukung tujuan tersebut.",
            "Tuliskan satu tujuan dan hasil minimum. Buat dua pilihan kecil sebelum memilih; jelaskan pilihan berdasarkan tujuan, bukan hanya selera."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tentukan ukuran relatif, origin, bagian terlihat, serta batas geometri prop hero",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 19,
          "project": 3,
          "phase": 2,
          "title": "Revisi geometri dan collection",
          "target": "Menerapkan revisi geometri dan collection dan menunjukkan hasil yang dapat diperiksa: prop dapat ditransform sebagai satu kesatuan dan geometri tersembunyi dievaluasi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan. Tunjukkan pembanding dengan masalah origin dan susunan sumber menyulitkan penempatan shot",
          "practice": "Di Blender, rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan",
          "check": "Prop dapat ditransform sebagai satu kesatuan dan geometri tersembunyi dievaluasi",
          "fault": "Origin dan susunan sumber menyulitkan penempatan shot",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S19-kode-siswa",
          "advancedDemand": "Make asset for VFX · konstruksi",
          "independentDecision": "Pilih penempatan dan kontak yang sesuai bidang serta arah cahaya plate.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, rapikan versi prop khusus shot dengan nama, skala, serta origin yang mudah diposisikan",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 20,
          "project": 3,
          "phase": 2,
          "title": "Kemasan material dan dependensi",
          "target": "Menerapkan kemasan material dan dependensi dan menunjukkan hasil yang dapat diperiksa: aset tidak kehilangan gambar dan pengendali material dapat ditemukan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder. Tunjukkan pembanding dengan masalah origin dan susunan sumber menyulitkan penempatan shot",
          "practice": "Di Blender, rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder",
          "check": "Aset tidak kehilangan gambar dan pengendali material dapat ditemukan",
          "fault": "Origin dan susunan sumber menyulitkan penempatan shot",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S20-kode-siswa",
          "advancedDemand": "Make asset for VFX · konstruksi",
          "independentDecision": "Pilih penempatan dan kontak yang sesuai bidang serta arah cahaya plate.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:outliner",
          "explanation": [
            "Outliner mengatur objek dan collection. Sumber .blend dapat bergantung pada gambar atau media di luar berkas, sehingga folder perlu disiapkan untuk dibuka ulang.",
            "Beri nama objek sesuai fungsi, kemas aset yang diperlukan dan buka salinan proyek dari folder lain untuk menemukan media hilang."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, rapikan node, simpan tekstur, lalu pack sumber dan uji buka dari salinan folder",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 21,
          "project": 3,
          "phase": 3,
          "title": "Match kamera secara manual",
          "target": "Menerapkan match kamera secara manual dan menunjukkan hasil yang dapat diperiksa: garis dan posisi kontak masuk akal pada frame uji",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: cocokkan bidang serta sudut prop dengan plate kamera terkunci. Tunjukkan pembanding dengan masalah arah cahaya serta kontak berbeda dari plate",
          "practice": "Di Blender, cocokkan bidang serta sudut prop dengan plate kamera terkunci",
          "check": "Garis dan posisi kontak masuk akal pada frame uji",
          "fault": "Arah cahaya serta kontak berbeda dari plate",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S21-kode-siswa",
          "advancedDemand": "Make asset for VFX · uji kualitas",
          "independentDecision": "Tentukan geometri serta detail yang perlu dipertahankan pada kamera shot.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:plate",
          "explanation": [
            "Shot kamera diam dapat dicocokkan secara manual melalui ukuran, sudut pandang dan arah cahaya. Aset harus berpijak serta tetap stabil terhadap plate.",
            "Cocokkan satu frame dahulu, lalu periksa awal–tengah–akhir. Camera tracking bukan syarat; gunakan footage sendiri atau berizin."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, cocokkan bidang serta sudut prop dengan plate kamera terkunci",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 22,
          "project": 3,
          "phase": 3,
          "title": "Match cahaya dan kontak",
          "target": "Menerapkan match cahaya dan kontak dan menunjukkan hasil yang dapat diperiksa: arah bayangan dan posisi kontak tidak membuat prop tampak melayang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji. Tunjukkan pembanding dengan masalah arah cahaya serta kontak berbeda dari plate",
          "practice": "Di Blender, atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji",
          "check": "Arah bayangan dan posisi kontak tidak membuat prop tampak melayang",
          "fault": "Arah cahaya serta kontak berbeda dari plate",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S22-kode-siswa",
          "advancedDemand": "Make asset for VFX · uji kualitas",
          "independentDecision": "Tentukan geometri serta detail yang perlu dipertahankan pada kamera shot.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:plate",
          "explanation": [
            "Shot kamera diam dapat dicocokkan secara manual melalui ukuran, sudut pandang dan arah cahaya. Aset harus berpijak serta tetap stabil terhadap plate.",
            "Cocokkan satu frame dahulu, lalu periksa awal–tengah–akhir. Camera tracking bukan syarat; gunakan footage sendiri atau berizin."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, atur lampu berdasarkan plate serta bidang penerima bayangan untuk uji",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 23,
          "project": 3,
          "phase": 4,
          "title": "Render RGBA dan uji alpha",
          "target": "Menerapkan render RGBA dan uji alpha dan menunjukkan hasil yang dapat diperiksa: latar transparan terbaca benar dan tepi prop tidak memiliki halo mencolok",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate. Tunjukkan pembanding dengan masalah render menghilangkan alpha atau gambar tekstur tidak terkemas",
          "practice": "Di Blender, aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate",
          "check": "Latar transparan terbaca benar dan tepi prop tidak memiliki halo mencolok",
          "fault": "Render menghilangkan alpha atau gambar tekstur tidak terkemas",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S23-kode-siswa",
          "advancedDemand": "Make asset for VFX · revisi brief",
          "independentDecision": "Pilih penempatan dan kontak yang sesuai bidang serta arah cahaya plate.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:alpha",
          "explanation": [
            "Alpha menyimpan transparansi. Compositing menyatukan render dan plate; latar putih bukan transparansi, dan urutan Alpha Over menentukan lapisan depan.",
            "Uji satu frame RGBA pada latar terang dan gelap. Periksa kontak, arah bayangan dan halo sebelum merender seluruh urutan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, aktifkan film transparan bila diperlukan lalu render satu PNG RGBA dan tes di atas plate",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Ada waktu mesin yang bergantung perangkat; gunakan preview kecil."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": "Periksa satu frame/preview kecil dalam kelas. Render penuh boleh berjalan setelah sumber dan setelan diperiksa; lama proses mesin tidak menentukan kelulusan.",
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 24,
          "project": 3,
          "phase": 4,
          "title": "Presentasi: Aset 3D Siap Shot VFX",
          "target": "Menerapkan handoff aset untuk compositor dan menunjukkan hasil yang dapat diperiksa: aset dapat dipakai pada proyek video dengan skala, cahaya, serta sumber yang jelas",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot. Tunjukkan pembanding dengan masalah render menghilangkan alpha atau gambar tekstur tidak terkemas",
          "practice": "Di Blender, tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot Mentor mengubah ukuran dan posisi prop di atas meja. Siswa menyesuaikan skala, kontak, serta render uji RGBA tanpa mengubah plate, lalu memperlihatkan sumber yang tetap lengkap saat dibuka dari folder salinan. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, dan catatan uji.",
          "check": "Aset dapat dipakai pada proyek video dengan skala, cahaya, serta sumber yang jelas",
          "fault": "Render menghilangkan alpha atau gambar tekstur tidak terkemas",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-lanjutan-S24-kode-siswa",
          "advancedDemand": "Make asset for VFX · revisi brief",
          "independentDecision": "Pilih penempatan dan kontak yang sesuai bidang serta arah cahaya plate.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Make asset for VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tanggapi perubahan ukuran prop lalu serahkan .blend, tekstur, PNG uji, serta catatan shot Mentor mengubah ukuran dan posisi prop di atas meja. Siswa menyesuaikan skala, kontak, serta render uji RGBA tanpa mengubah plate, lalu memperlihatkan sumber yang tetap lengkap saat dibuka dari folder salinan. Kerjakan perubahan di Blender; serahkan sumber .blend, PNG RGBA uji integrasi, tekstur terkemas, dan spesifikasi shot, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 25,
          "project": 4,
          "phase": 1,
          "title": "Kontrak shot dan folder produksi",
          "target": "Menerapkan kontrak shot dan folder produksi dan menunjukkan hasil yang dapat diperiksa: rentang 3–5 detik dan struktur berkas dapat diperiksa sebelum render",
          "demo": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer. Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir. Tunjukkan pembanding dengan masalah fps resolusi dan rentang frame plate berbeda dari scene",
          "practice": "Di Blender, tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir",
          "check": "Rentang 3–5 detik dan struktur berkas dapat diperiksa sebelum render",
          "fault": "FPS resolusi dan rentang frame plate berbeda dari scene",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S25-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · rancangan dan audit",
          "independentDecision": "Pilih prioritas revisi dari skala, kontak, cahaya, dan warna berdasarkan frame pembanding.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:brief",
          "explanation": [
            "Brief menjelaskan siapa yang melihat karya, pesan atau aksi yang perlu dipahami, dan batas hasil. Aset dibuat karena mendukung tujuan tersebut.",
            "Tuliskan satu tujuan dan hasil minimum. Buat dua pilihan kecil sebelum memilih; jelaskan pilihan berdasarkan tujuan, bukan hanya selera."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Latihan kecil atau sumber awal proyek ini; tidak mengasumsikan proyek akhir sudah jadi.",
            "minimum": "Di Blender, tetapkan plate, fps, durasi, resolusi, folder sumber, render, serta video akhir",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 26,
          "project": 4,
          "phase": 1,
          "title": "Uji frame awal tengah akhir",
          "target": "Menerapkan uji frame awal tengah akhir dan menunjukkan hasil yang dapat diperiksa: aset tidak bergeser dan ukuran sesuai bidang shot tanpa mengasumsikan camera tracking",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame. Tunjukkan pembanding dengan masalah fps resolusi dan rentang frame plate berbeda dari scene",
          "practice": "Di Blender, letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame",
          "check": "Aset tidak bergeser dan ukuran sesuai bidang shot tanpa mengasumsikan camera tracking",
          "fault": "FPS resolusi dan rentang frame plate berbeda dari scene",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S26-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · rancangan dan audit",
          "independentDecision": "Pilih prioritas revisi dari skala, kontak, cahaya, dan warna berdasarkan frame pembanding.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:review",
          "explanation": [
            "Pemeriksaan membandingkan hasil dengan tujuan sesi. Bedakan masalah konsep, pilihan visual, penggunaan alat dan kesiapan berkas.",
            "Tunjukkan bagian yang bermasalah, ubah satu penyebab dan bandingkan lagi. Catat bantuan yang dipakai; banyak detail bukan ukuran keberhasilan."
          ],
          "sessionType": "review",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "review",
            "label": "Pengujian dan revisi",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 5
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 15
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 22,
            "guidedMinutes": 5,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, letakkan aset pada plate kamera diam lalu cek perspektif serta kontak pada tiga frame",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 22,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 27,
          "project": 4,
          "phase": 2,
          "title": "Compositor dan Alpha Over",
          "target": "Menerapkan compositor dan Alpha Over dan menunjukkan hasil yang dapat diperiksa: plate dan aset sama-sama muncul serta alpha tidak menutup latar",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor. Tunjukkan pembanding dengan masalah alpha atau urutan compositing membuat plate tertutup",
          "practice": "Di Blender, hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor",
          "check": "Plate dan aset sama-sama muncul serta alpha tidak menutup latar",
          "fault": "Alpha atau urutan compositing membuat plate tertutup",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S27-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · konstruksi",
          "independentDecision": "Tentukan pengaturan render yang cukup terbaca dan selesai pada perangkat kelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:alpha",
          "explanation": [
            "Alpha menyimpan transparansi. Compositing menyatukan render dan plate; latar putih bukan transparansi, dan urutan Alpha Over menentukan lapisan depan.",
            "Uji satu frame RGBA pada latar terang dan gelap. Periksa kontak, arah bayangan dan halo sebelum merender seluruh urutan."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, hubungkan plate dengan render RGBA melalui Alpha Over lalu uji output Compositor",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 28,
          "project": 4,
          "phase": 2,
          "title": "Bayangan dan kontak dalam shot",
          "target": "Menerapkan bayangan dan kontak dalam shot dan menunjukkan hasil yang dapat diperiksa: prop berpijak dan bayangan searah dengan plate tanpa halo tepi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor. Tunjukkan pembanding dengan masalah alpha atau urutan compositing membuat plate tertutup",
          "practice": "Di Blender, uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor",
          "check": "Prop berpijak dan bayangan searah dengan plate tanpa halo tepi",
          "fault": "Alpha atau urutan compositing membuat plate tertutup",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S28-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · konstruksi",
          "independentDecision": "Tentukan pengaturan render yang cukup terbaca dan selesai pada perangkat kelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:plate",
          "explanation": [
            "Shot kamera diam dapat dicocokkan secara manual melalui ukuran, sudut pandang dan arah cahaya. Aset harus berpijak serta tetap stabil terhadap plate.",
            "Cocokkan satu frame dahulu, lalu periksa awal–tengah–akhir. Camera tracking bukan syarat; gunakan footage sendiri atau berizin."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, uji Shadow Catcher di Cycles atau pass bayangan terpisah yang disiapkan mentor",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 29,
          "project": 4,
          "phase": 3,
          "title": "Warna dan pencahayaan integrasi",
          "target": "Menerapkan warna dan pencahayaan integrasi dan menunjukkan hasil yang dapat diperiksa: aset tidak terlalu kontras atau jenuh dibanding lingkungan",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli. Tunjukkan pembanding dengan masalah cahaya kontak warna atau occlusion merusak integrasi",
          "practice": "Di Blender, sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli",
          "check": "Aset tidak terlalu kontras atau jenuh dibanding lingkungan",
          "fault": "Cahaya kontak warna atau occlusion merusak integrasi",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S29-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · uji kualitas",
          "independentDecision": "Pilih prioritas revisi dari skala, kontak, cahaya, dan warna berdasarkan frame pembanding.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:plate",
          "explanation": [
            "Shot kamera diam dapat dicocokkan secara manual melalui ukuran, sudut pandang dan arah cahaya. Aset harus berpijak serta tetap stabil terhadap plate.",
            "Cocokkan satu frame dahulu, lalu periksa awal–tengah–akhir. Camera tracking bukan syarat; gunakan footage sendiri atau berizin."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, sesuaikan exposure atau keseimbangan warna ringan dengan perbandingan plate asli",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 14,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Menghubungkan beberapa bagian; mulai satu perubahan dan satu uji.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 30,
          "project": 4,
          "phase": 3,
          "title": "Render sequence dan pemeriksaan",
          "target": "Menerapkan render sequence dan pemeriksaan dan menunjukkan hasil yang dapat diperiksa: jumlah frame sesuai fps dan durasi serta file tidak hilang",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji. Tunjukkan pembanding dengan masalah cahaya kontak warna atau occlusion merusak integrasi",
          "practice": "Di Blender, render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji",
          "check": "Jumlah frame sesuai fps dan durasi serta file tidak hilang",
          "fault": "Cahaya kontak warna atau occlusion merusak integrasi",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S30-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · uji kualitas",
          "independentDecision": "Pilih prioritas revisi dari skala, kontak, cahaya, dan warna berdasarkan frame pembanding.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, render PNG sequence 640–960 piksel pada sisi panjang lalu cek nomor serta tiga frame uji",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Ada waktu mesin yang bergantung perangkat; gunakan preview kecil."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": "Periksa satu frame/preview kecil dalam kelas. Render penuh boleh berjalan setelah sumber dan setelan diperiksa; lama proses mesin tidak menentukan kelulusan.",
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 31,
          "project": 4,
          "phase": 4,
          "title": "Susun dan ekspor video",
          "target": "Menerapkan susun dan ekspor video dan menunjukkan hasil yang dapat diperiksa: video dapat diputar ulang dengan durasi benar; PNG sequence tetap menjadi master bila codec perlu penyesuaian",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia. Tunjukkan pembanding dengan masalah video tidak terputar atau kehilangan frame walau still render terlihat benar",
          "practice": "Di Blender, impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia",
          "check": "Video dapat diputar ulang dengan durasi benar; PNG sequence tetap menjadi master bila codec perlu penyesuaian",
          "fault": "Video tidak terputar atau kehilangan frame walau still render terlihat benar",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
          "evidence": "3d-model-sma-lanjutan-S31-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · revisi brief",
          "independentDecision": "Tentukan pengaturan render yang cukup terbaca dan selesai pada perangkat kelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:keyframe",
          "explanation": [
            "Keyframe menyimpan nilai properti pada frame tertentu. Timing menentukan durasi dan interpolasi menentukan perubahan di antaranya. Render sequence menyimpan satu gambar per frame.",
            "Gunakan objek yang sudah dibuat, tetapkan awal–tengah–akhir dan uji preview dahulu. Periksa fps serta jumlah frame sebelum ekspor video."
          ],
          "sessionType": "learning",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "learning",
            "label": "Pembelajaran",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 10
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 3
              },
              {
                "key": "practice",
                "label": "Praktik",
                "minutes": 27
              },
              {
                "key": "test",
                "label": "Uji dan revisi",
                "minutes": 10
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 19,
            "guidedMinutes": 8,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas."
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, impor urutan hasil ke Video Sequencer dengan fps yang sama lalu ekspor MP4 H.264 bila tersedia",
            "understanding": "Ubah satu bentuk, sudut atau parameter yang relevan; bandingkan viewport/render kecil dan jelaskan sebab perbedaannya.",
            "enrichment": "Setelah target inti lolos, ubah satu parameter bentuk, material, cahaya, atau timing yang relevan dengan sesi; prediksi dan bandingkan hasil tanpa memperluas brief.",
            "estimatedIndependent": {
              "min": 11,
              "max": 19,
              "unit": "menit",
              "includes": "Mengerjakan dan mencoba variasi; uji formal serta penyimpanan memiliki slot terpisah."
            },
            "workloadFactors": [
              "Satu keterampilan inti dengan satu variasi mandiri.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Ada waktu mesin yang bergantung perangkat; gunakan preview kecil."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": "Periksa satu frame/preview kecil dalam kelas. Render penuh boleh berjalan setelah sumber dan setelan diperiksa; lama proses mesin tidak menentukan kelulusan.",
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        },
        {
          "number": 32,
          "project": 4,
          "phase": 4,
          "title": "Presentasi: Shot VFX: Objek di Dunia Nyata",
          "target": "Menerapkan presentasi shot dan breakdown dan menunjukkan hasil yang dapat diperiksa: siswa menunjukkan sebelum-sesudah dan menjelaskan batas kamera diam serta satu revisi integrasi",
          "demo": "Di Blender, peragakan versi minimum kegiatan berikut pada salinan: tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown. Tunjukkan pembanding dengan masalah video tidak terputar atau kehilangan frame walau still render terlihat benar",
          "practice": "Di Blender, tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown Mentor meminta versi shot bersuasana lebih hangat. Siswa memperbarui cahaya dan keseimbangan warna aset secara terarah, menjaga kecocokan dengan plate, lalu mengekspor ulang serta membandingkan frame awal-tengah-akhir. Kerjakan perubahan di Blender; serahkan sumber .blend, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, dan catatan uji.",
          "check": "Siswa menunjukkan sebelum-sesudah dan menjelaskan batas kamera diam serta satu revisi integrasi",
          "fault": "Video tidak terputar atau kehilangan frame walau still render terlihat benar",
          "support": "Siswa menyimpan brief, keputusan konstruksi, hasil uji, serta revisi. Mentor memperagakan masalah pada salinan, mengajukan pertanyaan, dan memberi perubahan brief; nilai kemandirian serta diagnosis, bukan kemiripan ilustrasi. Siapkan plate latihan kamera terkunci agar waktu kelas fokus pada aset dan integrasi; kamera bergerak menjadi pengayaan opsional setelah video inti selesai.",
          "extension": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
          "evidence": "3d-model-sma-lanjutan-S32-kode-siswa",
          "advancedDemand": "Video implementation untuk VFX · revisi brief",
          "independentDecision": "Tentukan pengaturan render yang cukup terbaca dan selesai pada perangkat kelas.",
          "toolId": "blender",
          "toolName": "Blender",
          "sourceFormat": ".blend",
          "toolSetup": "Gunakan Blender dengan folder sumber .blend, tekstur, serta keluaran terpisah. Siapkan contoh kecil untuk Video implementation untuk VFX. Uji fitur dan render minimum sebelum kelas; catat versi serta renderer.",
          "handoff": "Simpan sumber .blend di Blender, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, serta hasil uji dan revisi.",
          "assessmentEvidence": "Catat konsep, keputusan visual, teknik dan proses secara terpisah; simpan alternatif, masukan, revisi serta bantuan.",
          "conceptKey": "blender:presentation",
          "explanation": [
            "Presentasi menunjukkan tujuan, pilihan visual, hasil dan satu revisi. Hasil yang sederhana boleh berhasil jika maksudnya terbaca.",
            "Perlihatkan sumber dan versi sebelum–sesudah. Minta penonton menyebut apa yang dipahami sebelum kamu menjelaskan maksudnya."
          ],
          "sessionType": "presentation",
          "timePlan": {
            "revision": "2026-11-04-task-timing",
            "type": "presentation",
            "label": "Presentasi karya",
            "duration": 60,
            "stages": [
              {
                "key": "opening",
                "label": "Pembuka dan cek bekal",
                "minutes": 5
              },
              {
                "key": "concept",
                "label": "Konsep dan demo",
                "minutes": 3
              },
              {
                "key": "setup",
                "label": "Persiapan sumber",
                "minutes": 2
              },
              {
                "key": "practice",
                "label": "Demonstrasi siswa",
                "minutes": 24
              },
              {
                "key": "test",
                "label": "Pertanyaan dan umpan balik",
                "minutes": 21
              },
              {
                "key": "closing",
                "label": "Simpan, refleksi dan cadangan waktu",
                "minutes": 5
              }
            ],
            "independentMinutes": 24,
            "guidedMinutes": 0,
            "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
            "presentation": {
              "format": "group",
              "students": "1–4",
              "demoMinutes": 24,
              "perStudentMinutes": 4,
              "transitionReserve": 4,
              "maxStudentsSequential": 4,
              "rule": "Grup 1–4 siswa: gunakan sisa blok untuk latihan penjelasan atau pertanyaan singkat; tidak perlu memperpanjang bicara demi mengisi waktu. Private menggunakan varian tersendiri."
            },
            "privateVariant": {
              "format": "private",
              "students": 1,
              "stages": [
                {
                  "key": "opening",
                  "label": "Pembuka dan cek bekal",
                  "minutes": 5
                },
                {
                  "key": "concept",
                  "label": "Konsep dan demo",
                  "minutes": 3
                },
                {
                  "key": "setup",
                  "label": "Persiapan sumber",
                  "minutes": 2
                },
                {
                  "key": "practice",
                  "label": "Demonstrasi siswa",
                  "minutes": 15
                },
                {
                  "key": "test",
                  "label": "Pertanyaan dan umpan balik",
                  "minutes": 30
                },
                {
                  "key": "closing",
                  "label": "Simpan, refleksi dan cadangan waktu",
                  "minutes": 5
                }
              ],
              "demoMinutes": 15,
              "note": "Blok 15 menit: sekitar 5 menit demonstrasi dan 10 menit penjelasan/probe; 30 menit uji, masukan dan revisi."
            }
          },
          "taskReview": {
            "status": "Estimasi awal; perlu validasi mentor di kelas",
            "startingPoint": "Lanjutkan berkas latihan/proyek yang sudah disimpan; contoh mentor adalah acuan, bukan hasil siswa.",
            "minimum": "Di Blender, tanggapi perubahan suasana mentor lalu serahkan video, plate, render, .blend, dan breakdown Mentor meminta versi shot bersuasana lebih hangat. Siswa memperbarui cahaya dan keseimbangan warna aset secara terarah, menjaga kecocokan dengan plate, lalu mengekspor ulang serta membandingkan frame awal-tengah-akhir. Kerjakan perubahan di Blender; serahkan sumber .blend, video VFX 3–5 detik, PNG sequence master, plate, dan breakdown, dan catatan uji.",
            "understanding": "Tunjukkan satu bagian yang dibuat sendiri, satu keputusan dan satu perbaikan; jawab satu pertanyaan menggunakan sumber karya.",
            "enrichment": "Pilih satu masukan yang berguna, revisi bagian terkait dan tunjukkan hasil uji ulang; tidak perlu menambah fitur baru.",
            "estimatedIndependent": {
              "min": 19,
              "max": 24,
              "unit": "menit",
              "includes": "Blok seluruh giliran demonstrasi kelas; bukan waktu bicara per siswa. Umpan balik mempunyai slot terpisah.",
              "scope": "class"
            },
            "workloadFactors": [
              "Demonstrasi hasil; tidak mempelajari konsep baru.",
              "Brief lebih mandiri; catat keputusan dan bantuan.",
              "Tidak memasukkan instalasi atau unduhan besar."
            ],
            "stopRule": "Jika hasil minimum dan probe sudah terbukti, lanjut ke pengayaan atau refleksi; tidak perlu menghabiskan jatah waktu. Jika belum, kurangi variasi dan catat penguatan.",
            "technicalWait": null,
            "pilot": {
              "students": null,
              "actualMinutes": null,
              "help": null,
              "minimumMet": null,
              "probeMet": null,
              "nextSupport": null
            }
          }
        }
      ],
      "toolRevision": "tools-2026-10-21",
      "toolIds": [
        "blender"
      ],
      "setup": "Siapkan Blender versi yang diuji pada perangkat kelas; catat versi, renderer, serta waktu render uji kecil. Gunakan mouse atau emulasi navigasi yang sesuai. Uji simpan-buka .blend dan PNG; simpan tekstur serta keluaran pada folder terpisah. Untuk animasi, uji timeline dan render urutan PNG; untuk VFX siapkan plate kamera diam, Compositor, Video Sequencer, serta uji ekspor video pendek sebelum kelas.",
      "curriculumRevision": "3d-2026-10-22-v1",
      "placement": [
        "Navigasikan scene, pilih objek, dan ubah transform satu sumbu tanpa mengubah objek lain.",
        "Revisi satu mesh memakai Edit Mode lalu periksa siluet, normal, serta persinggungan.",
        "Atur kamera dan cahaya, simpan .blend, lalu buka ulang serta periksa PNG.",
        "Untuk SMA Lanjutan, jelaskan satu seam UV, satu cabang node material, serta tiga keyframe transform; berikan penguatan pada bagian yang belum mandiri."
      ],
      "learningApproach": "Brief dan batas → alternatif → keputusan mandiri → uji pengguna → revisi beralasan.",
      "assessmentPolicy": "Nilai konsep, keputusan visual, teknik dan proses secara terpisah: perlu contoh langsung / mampu dengan petunjuk / mandiri. Kerapian atau kemiripan gambar AI bukan ukuran tunggal.",
      "pilotPolicy": "Catat waktu efektif, bagian sulit, bantuan dan hasil tugas transfer saat uji kelas. Gunakan waktu pengayaan untuk penguatan jika hasil minimum belum tercapai.",
      "hardwareSupport": "Gunakan model ringan dan render kecil untuk latihan; uji pengaturan pada perangkat kelas. Jangan menilai siswa dari lamanya render.",
      "transitionGate": "Sebelum render sequence VFX: sumber dan tekstur terbuka utuh, skala/origin sesuai, satu frame RGBA tidak berhalo, kontak dan cahaya cocok pada plate kamera diam. Uji awal–tengah–akhir sebelum seluruh durasi; gunakan penguatan bila belum siap."
    }
  ],
  "toolRevision": "tools-2026-10-21",
  "designPedagogyRevision": "2026-11-04",
  "designAssessment": [
    {
      "aspect": "Konsep",
      "evidence": "Menjelaskan prinsip sesi melalui satu contoh dan satu pembanding."
    },
    {
      "aspect": "Keputusan visual",
      "evidence": "Pilihan bentuk, susunan, warna atau gerak mendukung tujuan dan audiens."
    },
    {
      "aspect": "Teknik",
      "evidence": "Sumber dapat direvisi, aset tersedia dan ekspor berfungsi pada ukuran/durasi penggunaan."
    },
    {
      "aspect": "Proses",
      "evidence": "Ada alternatif, masukan serta revisi dengan alasan; bantuan dicatat."
    }
  ],
  "timingRevision": "2026-11-04-task-timing",
  "timingPolicy": {
    "status": "Estimasi awal berbasis isi tugas; belum merupakan hasil pengukuran kelas.",
    "duration": 60,
    "setup": "Aplikasi, akun bila perlu, interpreter, aset dan contoh diunduh serta diuji sebelum kelas. Instalasi atau unduhan besar bukan bagian dari slot persiapan singkat.",
    "buffer": "Lima menit penutupan mencakup simpan/refleksi sekitar tiga menit dan cadangan sekitar dua menit; bukan waktu tambahan di luar durasi.",
    "presentation": "Dua format: private satu siswa dan grup 1–4 siswa. Jadwal utama untuk grup; varian private memindahkan waktu giliran ke diskusi, uji dan revisi individual.",
    "classFormats": {
      "private": {
        "students": 1
      },
      "group": {
        "minStudents": 1,
        "maxStudents": 4
      }
    },
    "pilot": "Catat jumlah siswa, waktu aktual tiap tahap, bantuan, hasil minimum, hasil probe dan penguatan berikutnya. Jangan menahan siswa yang sudah membuktikan paham hanya untuk memenuhi menit."
  }
}
