ADVERTISEMENT

A Chinese animated film mocked as 'terrible' becomes a box-office hit

Published Aug 18, 2026 03:10 pm

The new sensation among some Chinese moviegoers is an animated film whose characters appear to have been created with rudimentary 3D animation and have been described as “ugly” and “eerie.”

But it is the scathing online reviews that seem to have prompted interest in “Niu Lai,” an animated film about a calf who dreams of growing up with the help of his family. The film has since seen a surprising surge at the box office.

The film earned only about 10,000 yuan ($1,480) at the box office in the first 10 days after its Aug. 5 release. On some days, it took in as little as 200 yuan ($30), according to Maoyan, a movie-tracking platform. The figure was exceptionally low, particularly during the competitive summer movie season.

But its box office surged to 8.2 million yuan ($1.2 million) Monday, with nearly 300,000 admissions, according to Maoyan. Its total box office has reached 17.1 million yuan ($2.5 million).

Red Star News, a local news website in Chengdu, reported that the film was made over five years by just two people—director Xin Yumeng and his mother, Sun Lifan. The Associated Press was unable to reach Xin and could not independently verify this.

Posters seen at movie theaters featured a calf, hand-drawn in pen without color, alongside handwritten slogans: “Come on over if you’re into the bizarre” and “No refunds.”

A ‘terrible’ movie viewers recommend as a prank

On Douban, a popular Chinese movie-review platform, viewers piled on with mocking and bewildered comments.

Among the most popular were “unbelievably terrible and eye-opening,” “a symbol of the new internet troll culture,” and “a must-watch for Chinese stock market investors.” The last is a play on the film’s name, “Niu Lai,” which literally means “the bull is coming” in Chinese—a wish for a bull market.

Comments such as “over nine out of ten” and “awesome and highly recommended” are also among the sarcastic reactions.

“My initial intention has always been to play pranks on my friends,” said Du Mingxi, a 19-year-old college student in Shanghai.

“If a friend asks me what I think about the movie, I’d say good and recommend them to watch,” he said, adding that he successfully tricked two friends into watching the movie with him. Both found it fun, but one fell asleep during the viewing.

Du compared young people going to the movies to see this kind of film to the mysterious “six-seven” craze in the U.S., saying that some are simply drawn to things they find weird or funny, with many jumping on a trend whether they understand it or not.

“They are just the same, it is funny but hard to describe what’s funny about it, and young people just love spreading these memes virally,” said Du.

Despite the flood of criticism and memes, some viewers didn’t mind the rudimentary production.

Zhong Jiaming, a vocational schoolteacher in Guangzhou, called it a rare find in an era when movies are often “visually exquisite and polished, but their stories can fail to engage.”

“This is a movie for the young at heart,” said Zhong. “It is simple and honest, like a bedtime story for children.”

Related Tags

Niu Lai Chinese animation Chinese animated film China box office Chinese movies
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ static_articles_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.