← Quay lại Blog
2026-09-16·9 min read
2 lượt xem

Lumora — Khi công nghệ trở thành người đạo diễn ký ức

Hành trình tôi xây Lumora từ một câu hỏi về ký ức thành nền tảng kể chuyện kết hợp không gian 3D, nhịp kể và âm thanh nguyên bản.

productthree.jsweb-audiofull-stacklumora

Lumora — Khi công nghệ trở thành người đạo diễn ký ức

Chúng ta chụp rất nhiều ảnh, nhưng phần lớn chúng chỉ nằm trong thư viện điện thoại. Thỉnh thoảng ta lướt lại, dừng vài giây rồi tiếp tục. Bức ảnh vẫn còn đó, nhưng cảm giác của khoảnh khắc thì ngày càng khó chạm tới.

Lumora bắt đầu từ một câu hỏi rất đơn giản:

Nếu album ảnh chỉ giúp ta nhìn lại điều đã xảy ra, liệu một sản phẩm số có thể giúp người nhận thật sự đi qua cảm xúc của ký ức đó không?

Từ câu hỏi ấy, tôi xây Lumora như một nền tảng kể chuyện ký ức. Người tạo đưa vào ảnh, lời nhắn và điều mình muốn nói; Lumora phối hợp những chất liệu ấy với nhịp kể, chuyển động, không gian 3D và soundscape để tạo thành một trải nghiệm có mở đầu, cao trào và khoảng lặng.

Triết lý tôi theo đuổi trong suốt quá trình phát triển là:

Lumora không render ký ức. Lumora đạo diễn cách ký ức được cảm nhận.

Từ bộ sưu tập ảnh đến một hành trình

Một album truyền thống thường đặt mọi nội dung trước mắt người xem cùng lúc. Cách tiếp cận của Lumora thì khác: thông tin được hé lộ theo nhịp.

Người tạo bắt đầu bằng những chất liệu thật của câu chuyện: ảnh, lời nhắn, thứ tự và cảm xúc muốn truyền tải. Họ chọn cách kể, universe, theme và soundscape. Từ những lựa chọn có ngôn ngữ gần gũi đó, hệ thống chuyển chúng thành camera behavior, particle, transition, timing và quy tắc trình diễn phù hợp.

Người nhận không cần cài ứng dụng. Một đường link duy nhất đưa họ vào phần mở đầu của câu chuyện, rồi từng bước dẫn đến không gian ký ức. Ảnh không còn là các ô nội dung để lướt qua; chúng trở thành những điểm chạm được khám phá trong một hành trình.

Tôi gọi lớp mở đầu này là Story Experience. Nó giải quyết một vấn đề quan trọng: trước khi nhìn thấy toàn bộ thế giới 3D, người xem cần được chuẩn bị về mặt cảm xúc. Nhịp xuất hiện của câu chữ, khoảng dừng và âm thanh đều góp phần đưa họ từ trạng thái “mở một đường link” sang trạng thái “bước vào một câu chuyện”.

Năm lớp cùng phục vụ một cảm xúc

Khi phát triển Lumora, tôi không xem sản phẩm như một tập hợp hiệu ứng. Tôi chia trải nghiệm thành năm lớp có trách nhiệm rõ ràng:

  • Story quyết định câu chuyện được mở ra theo thứ tự nào.
  • Emotion mô tả cảm giác mà trải nghiệm muốn dẫn tới.
  • Universe xác định không gian và cách người xem khám phá ký ức.
  • Theme kiểm soát ngôn ngữ thị giác xuyên suốt hành trình.
  • Soundscape củng cố nhịp điệu và bầu không khí bằng âm thanh.

Ranh giới này giúp tôi tránh biến Lumora thành một “trình diễn Three.js”. Công nghệ chỉ có ý nghĩa khi nó phục vụ câu chuyện. Nếu một chuyển động đẹp nhưng làm người xem mất tập trung khỏi lời nhắn, chuyển động đó không hoàn thành nhiệm vụ của mình.

Một gateway, nhiều cách kể

Lumora hiện có nhiều hình thức trải nghiệm, trong đó Galaxy ClassicFall Through Memories mang hai ngôn ngữ chuyển động khác nhau. Một bên tạo cảm giác khám phá các ký ức trong không gian; bên còn lại dẫn người xem đi xuyên qua từng lớp hình ảnh.

Thay vì tạo những loại đường dẫn riêng và bắt người dùng hiểu cấu trúc bên trong, tôi thiết kế một public gateway duy nhất. Gateway đọc cấu hình của câu chuyện rồi quyết định tải Story Experience, Galaxy Classic hay Fall Through Memories.

Quyết định này đem lại hai lợi ích. Với người dùng, một đường link luôn đại diện cho toàn bộ ký ức, bất kể cách trình diễn thay đổi. Với hệ thống, mỗi renderer có thể tiếp tục phát triển độc lập mà không phá vỡ contract chia sẻ bên ngoài.

Three.js là sân khấu, không phải câu chuyện

Three.js và WebGL đảm nhiệm phần không gian 3D: camera, particle, vật thể, chuyển động và tương tác. Nhưng thử thách lớn nhất không nằm ở việc đưa thật nhiều vật thể lên màn hình. Nó nằm ở việc giữ trải nghiệm ổn định trên những thiết bị rất khác nhau.

Một scene có thể đẹp trên máy phát triển nhưng trở nên nặng nề trên điện thoại. Vì vậy, mỗi lựa chọn thị giác đều cần cân nhắc mật độ particle, số lượng object, vòng đời resource, pixel ratio và chi phí của animation loop. Những hiệu ứng không đóng góp đủ cho cảm xúc phải được giản lược.

Tôi cũng tách cấu hình nội dung khỏi renderer. Story, ảnh và lời nhắn là dữ liệu của sản phẩm; camera và particle là cách một universe diễn giải dữ liệu đó. Sự tách biệt này giúp Lumora có thể thêm cách kể mới mà không phải thay đổi cấu trúc câu chuyện đã được người dùng tạo trước đó.

Soundscape không phải nhạc nền

Âm thanh trong Lumora không được xem như một track chạy phía sau hình ảnh. Nó là một phần của nhịp kể.

Tôi sử dụng Web Audio API để tổng hợp soundscape ngay trong trình duyệt. Mỗi preset có nhạc cụ, sắc thái và quy tắc biến tấu riêng, nhờ đó các vòng nghe bớt lặp lại máy móc. Cách làm này đồng thời giảm sự phụ thuộc vào một catalog nhạc bên ngoài và tránh đưa những track không rõ quyền sử dụng vào sản phẩm.

Quan trọng hơn, âm thanh phải biết nhường chỗ. Có lúc nó dẫn dắt, có lúc chỉ tạo bầu không khí, và có lúc khoảng lặng mới là điều câu chuyện cần. Thiết kế soundscape vì thế không chỉ là bài toán kỹ thuật âm thanh, mà còn là bài toán về timing và cảm xúc.

Phần không nhìn thấy của một trải nghiệm cảm xúc

Phía sau không gian 3D là một hệ thống full-stack gồm Node.js, Express và MongoDB. Portal cho phép người tạo quản lý nội dung, ảnh, lời nhắn, universe, theme và soundscape trong một luồng thống nhất, có live preview trước khi chia sẻ.

Những phần ít “trình diễn” hơn lại quyết định một sản phẩm có thể vận hành thật hay không: authentication, ownership, entitlement, upload media, thanh toán, compliance và activity tracking. Với tôi, đây không phải các phần phụ của Lumora. Chúng là nền tảng của niềm tin.

Người dùng cần biết ký ức của họ thuộc về ai, ai có quyền chỉnh sửa, quyền truy cập được xác định thế nào và hệ thống xử lý dữ liệu ra sao. Backend vì thế là lớp quyết định cuối cùng cho quyền và dữ liệu; giao diện chỉ phản ánh trạng thái đã được xác thực.

Những điều tôi học được khi tự xây một sản phẩm

Lumora đặt tôi vào nhiều vai trò cùng lúc: Product Owner, Product Designer và Full-stack Product Engineer. Tôi phải đi từ một ý tưởng cảm tính đến hành trình người dùng, mô hình domain, kiến trúc kỹ thuật và cách vận hành sản phẩm.

Ba bài học quan trọng nhất với tôi là:

1. Một trải nghiệm tốt cần ranh giới kỹ thuật rõ ràng

Story không nên biết cách particle được render. Universe không nên quyết định quyền truy cập. Soundscape không nên phụ thuộc vào giao diện quản trị. Khi mỗi phần có trách nhiệm rõ, tôi có thể thay đổi cách trình diễn mà không làm toàn bộ sản phẩm trở nên mong manh.

2. Hiệu ứng chỉ có giá trị khi phục vụ ý định

Không gian 3D dễ tạo cảm giác ấn tượng, nhưng cũng rất dễ trở thành nhiễu. Tôi học cách đánh giá một hiệu ứng bằng câu hỏi: nó có giúp người xem hiểu câu chuyện hoặc cảm nhận khoảnh khắc rõ hơn không?

3. Sản phẩm cá nhân vẫn cần tư duy vận hành thật

Authentication, thanh toán, logging, tracking và quyền sở hữu không phải việc để “sau này”. Đưa chúng vào kiến trúc từ sớm giúp tôi nhìn Lumora như một sản phẩm có người dùng, thay vì chỉ là một bản demo kỹ thuật.

Hướng tới Story Emotion Engine

Bước tiếp theo tôi đang thiết kế cho Lumora là Story Emotion Engine.

Thay vì yêu cầu người dùng tự lựa chọn từng transition, camera behavior hay soundscape, mục tiêu là để họ bắt đầu bằng điều tự nhiên hơn: Tôi muốn người xem cảm thấy gì?

Từ ý định đó, hệ thống sẽ phối hợp nhịp kể, hình ảnh, chữ, chuyển động, khoảng lặng và âm thanh thành một emotional curve gồm mở đầu, build-up, climax và release. Đây vẫn là hướng phát triển, chưa phải một tính năng đã hoàn tất, nhưng nó thể hiện rõ nơi tôi muốn đưa Lumora tới: một công cụ giúp con người kể những câu chuyện giàu cảm xúc mà không cần trở thành chuyên gia kỹ thuật.

Kết

Lumora giúp tôi kết nối hai điều mình quan tâm nhất: xây dựng hệ thống kỹ thuật và tạo ra sản phẩm có ý nghĩa với con người. Three.js, WebGL, Web Audio API hay backend không phải đích đến. Chúng là ngôn ngữ để một ký ức được kể đúng nhịp, đúng không gian và đúng cảm xúc.

Bạn có thể xem thêm kiến trúc, hành trình và các quyết định sản phẩm tại trang dự án Lumora, hoặc trải nghiệm Lumora trực tiếp.