كيف طوّر Kimi K3 ضربة قلم حبر سائل رقمية
أردنا قلم الحبر السائل الاتجاهي من Freeform في Lulucat Notes. كانت المواصفة لقطة شاشة لخط اليد. وبعد نموذجين وسؤال فاصل واحد وريشة بيضوية، صار قلم الماء يكتب كما ينبغي. أنجز Kimi K3 على Fireworks البحث والكود والتحقق.

صُيّر بواسطة خط أنابيب Metal في Lulucat Notes الذي تتحدث عنه هذه المقالة.
يضم Lulucat Notes قلمًا عاديًا وقلم تمييز. وكانت الأداة التالية على خارطة الطريق قلم ماء — قلم الحبر السائل الاتجاهي الذي تعرفه من Apple Notes وFreeform، حيث تخرج الضربات الرأسية سميكة والأفقية رفيعة. لم تكن مواصفة هذه الأداة وثيقة، بل كانت لقطة شاشة: ثلاثة أسطر من خط اليد، والكلمات “pencilkit” و”无边记” و”这种有方向的水笔能力” — أي قدرة قلم الماء الاتجاهي هذه.
وكما حدث مع خط أنابيب Metal قبله، أنجز Kimi K3 العمل، وهو النموذج المفتوح من Moonshot الذي يعمل على Fireworks: القياس والنمذجة والكود والتحقق. قدّم الإنسان لقطة الشاشة، وأجاب عن سؤال واحد، وحكم على الإحساس باستخدام iPad حقيقي.
المواصفة لقطة شاشة
لا تستطيع صورة ثابتة أن تخبرك لماذا تكون الضربة رفيعة. كل ما تستطيع إخبارك به هو مدى رقتها ومكانها. لذلك كانت الخطوة الأولى هي القياس. مسحنا لقطة الشاشة صفًا صفًا وعمودًا عمودًا، وتتبعنا انحراف الخط المركزي لكل ضربة لاستخراج اتجاهها، ثم حوّلنا عرض المسح إلى العرض الحقيقي باستخدام جيب تلك الزاوية:
| الضربة | الاتجاه | العرض الحقيقي |
|---|---|---|
| الجزء الصاعد من “l” في “pencilkit” | ≈ 78° | 27.3 px |
| ساق “k” في “pencilkit” | ≈ 90° | 28 px |
| الانحناءة الهابطة إلى اليسار في 力 | ≈ 66° | 25.7 px |
| الوصلات بالخط المتصل | ≈ 8° | 11 px |
| الخطوط الأفقية الصينية (横) | ≈ 0° | 6–11 px |
نسبة السميك إلى الرفيع ≈ 2.5. وملاءمة
النسخة الأولى: العرض من الاتجاه
كان النموذج الأول هو الاختيار البديهي. نحسب اتجاهًا لكل نقطة إدخال، ونحوّل الاتجاه إلى عرض عبر المنحنى الملائم، ثم نثبّت النتيجة داخل نصف قطر النقطة عند الالتقاط. كان تقدير الاتجاه سببيًا — متوسطًا موزونًا متناقصًا أسيًا على آخر نقاط قليلة من القوس، محسوبًا في فضاء الزاوية المضاعفة حتى لا يلغي انعكاس الحركة التقدير. لا تُستخدم إلا النقاط السابقة، لذلك تتطابق الضربة الحية والضربة المثبتة بايتًا بايتًا.
اجتاز الباني فحص الوحدة: فقد ثبّتت المسارات الاصطناعية الأفقية والرأسية ومسار 45° ومسار الانعكاس العروض النظرية كلها — 0.99 و2.52 و2.00 و0.99 نقطة. ولم يحتج التصيير إلى أي كود جديد: فالضربة ذات نصف القطر المثبت ليست إلا سلسلة من الأختام الدائرية، وخط أنابيب point-sprite لدينا كان يرسمها أصلًا.
على iPad، احتاج الإنسان نحو عشر ثوانٍ لرفضها: “هذا قلم فني، وليس قلم الماء.”
تفسيران ينسجمان مع صورة واحدة
لماذا بدا الإحساس خاطئًا؟ كان هناك تفسيران محتملان، ولم تستطع لقطة الشاشة الفصل بينهما:
- قفل الاتجاه. تجبر هندسة الريشة الخطوط الأفقية على أن تكون رفيعة والرأسية على أن تكون سميكة، مهما فعلت اليد. وهذا ما نفذته النسخة الأولى.
- الضغط والسرعة. القلم محكوم بالضغط، ونمط العينة ليس إلا ديناميكا خط اليد: فالضربات النازلة تكون مضغوطة بطبيعتها، والوصلات سريعة وخفيفة بطبيعتها.
ينتج كلا التفسيرين لقطة شاشة ذات أفقيات رفيعة ورأسيات سميكة. والفرق هو ما يحدث عندما تضغط بقوة على ضربة أفقية. تُبقيها النسخة الأولى رفيعة، بينما يجعلها قلم الضغط سميكة. لذلك طرحنا على الإنسان سؤالًا واحدًا: هل ينبغي أن تصبح الضربة الأفقية التي يُضغط عليها بقوة أكثر سمكًا؟
“لا. تبقى الخطوط الأفقية رفيعة.”
تأكد قفل الاتجاه. لكن شيئًا آخر كان خاطئًا، لأن النسخة الأولى كانت مقفلة الاتجاه أيضًا.
كانت الإجابة في نهايات الضربات
ظهر الدليل التالي عند قمم الأجزاء الصاعدة. أظهر التكبير على ساقي “l” و”k” في العينة أمرين: تحافظ الضربة المستقيمة على عرض واحد من البداية إلى النهاية، ونهايات الضربات قطوع قطرية مسطحة — شكل ريشة إزميل وهي ترتفع عن السطح. ليست نقاطًا مستديرة، وليست تدرجات ناتجة عن الضغط.

هذا هو المقصود فعلًا بعبارة «إحساس القلم الفني». فقد نمذجت النسخة الأولى مظهر العينة — العرض بوصفه دالة في الاتجاه المقدّر — لكنها لم تنمذج القلم. مقدّر الاتجاه مستشعر: يهتز مع الإدخال المشوش، ويتأخر عند الزوايا، ويحوّل نهاية كل ضربة إلى دائرة. أما الريشة الحقيقية فلا تواجه أيًا من هذه المشكلات، لأنها لا تحسب شيئًا. العرض هو الهندسة.
النسخة الثانية: ريشة بيضوية
لا يحتوي النموذج النهائي على أي مقدّر اتجاه. الريشة قطع ناقص موجّه: محوره الطويل أفقي ومحوره القصير ثابت. توضع أختام هذا القطع الناقص بكثافة على مسار الضربة، وكل ما عدا ذلك ينتج من الهندسة:
-
تتحرك الضربة الأفقية بمحاذاة الحافة المفتوحة، ولذلك تخرج دائمًا بعرض
— خط رفيع ثابت عند أي ضغط. هذه هي المواصفة المؤكدة بالضبط. -
تعبر الضربة الرأسية المحور الطويل كاملًا:
، أي الطرف السميك. -
تأخذ الضربة القطرية عرض وتر القطع الناقص عموديًا على اتجاه الحركة،
-
نهايات الضربات قطوع بيضوية — النهايات المسطحة على شكل ريشة التي ظهرت في العينة، من دون عمل إضافي.
-
يغيّر الضغط مقياس المحور الطويل فقط،
، لذلك يمنح الضغط حجم حبر أكبر في الضربات النازلة ولا يستطيع أبدًا زيادة سمك الضربة الأفقية.
من قياسات العينة أبقينا
احتاج التصيير إلى fragment shader جديد واحد لا غير. كان تنسيق الرأس — الموضع والقطر واللون — يحمل كل شيء أصلًا: فالقطر هو المحور الطويل، والمحور القصير هو uniform لكل تمريرة. يقيّم الـ shader SDF لقطع ناقص باستخدام منحدر التغطية نفسه لنصف البكسل الموجود في أختامنا الدائرية، وهو ما يبقيه قابلًا للمقارنة بكسلًا ببكسل مع التطبيق المرجعي في Core Graphics (fillEllipse لكل ختم). مرّ التحقق عبر البوابة المعتادة: مجموعة اصطناعية تضم ضربتي قلم حبر سائل، صُيّرت بالطريقتين وقورنت بكسلًا ببكسل — صفر فروق بنيوية، وضربة أفقية فُحصت عشوائيًا وقاست 12 px في كلا المصيّرين.

النسخة الأولى إلى اليسار، والثانية إلى اليمين. الإدخال المكتوب باليد نفسه، وخط الأنابيب نفسه. النهايات تحكي القصة.
على iPad، اجتاز القلم الجديد الاختبار فورًا: “好,很好” — جيد. جيد جدًا.
الاحتفاظ بالمحاولة الفاشلة
لم تذهب النسخة الأولى إلى سلة المهملات. إنها فرشاة مثيرة للاهتمام بحق — لكنها ليست قلم ماء. لذلك شُحنت بوصفها أول إدخال في قائمة جديدة للفرش التجريبية، تحت الاسم الذي منحه لها الإنسان: 漏水的圆珠笔، أي القلم الجاف المتسرّب. وحصل شريط الأدوات على زر دورق يفتح قائمة نصية بالتجارب؛ وإضافة التجربة التالية لا تكلف سوى سطر واحد في registry. النموذج المرفوض ليس عملًا ضائعًا حين يمكن شحنه كتجربة موسومة بوضوح.
أمسية واحدة من الحلقات
استغرق المسار الكامل — القياس، والنمذجة، والبناء، وتجربة الجهاز، والسؤال، وإعادة النمذجة، وإعادة البناء، والتحقق — أمسية واحدة. لم يكتفِ Kimi K3 على Fireworks بكتابة الكود، بل أدار الجانب التقني الكامل للحلقة: ابتكار مسوحات القياس، واقتراح السؤال الفاصل بدل التخمين مرة ثانية، وحذف مقدّر الاتجاه الخاص به عندما تغيّرت الأدلة، وتوسيع pixel-diff harness قبل لمس التطبيق. أبقت سرعة استدلال Fireworks الحلقة تفاعلية — فقد وصلت فروق Metal وSwift الطويلة، وسكربتات تحليل البكسلات، وأدوات corpus بسرعة كافية ليبقى عنق الزجاجة حيث ينبغي أن يكون: الحكم البشري.
كان نمط التعاون هو نفسه الذي كتبنا عنه في تدوينة خط أنابيب Metal، وقد صمد مرة أخرى: النموذج سريع ودقيق، والإنسان يملك الذوق والتحقق الشامل من البداية إلى النهاية. وكانت جملة واحدة من الملاحظات القائمة على الإحساس — “قلم فني، لا قلم ماء” — كافية ليحدد النموذج خطأ النمذجة الدقيق ويستبدله بتصميم أبسط.
اتضح أن النموذج الصحيح أصغر من الخاطئ. شُحنت النسخة الثانية بأجزاء متحركة أقل من النسخة الأولى — لا مقدّر، ولا نافذة تنعيم، ولا أسّ ملائم. الريشة لا تحسب العرض. الريشة هي العرض.