I am thrilled to announce that Social Street View has won the Best Paper Award at Web3D 2016, which was held next to SIGGRAPH 2016 in late August! Please visit the project website for more details: http://www.socialstreetview.com I also published my slides and videos.
[Summary] Omnipresence 3D for Multiview Mixed Reality
Christian Laforte leads the development of Fortem’s Omnipresence 3D software. It helps organizations prevent costly mistakes and respond to incidents in record time — protecting our communities against increasingly complex security threats. This is definitely a great leap of my prior work, VideoFields. At the time, I was offered only three surveillance video cameras and would…
[Summary] PointNet, PointNet++, and PUNet
Shuo Li presented a talk at GVIL weekly seminar: PointNet, PointNet++, and PUNet PointNet Instead of 3D convolution, PointNet directly consumes point clouds, which well respects the permutation invariance of points in the input. A point cloud is an unordered set of vectors. Each point Pi is a vector of its (x, y, z) coordinate plus extra…
Gradient, Circulation, Laplacian, Divergence, Jacobian, Hessian, and Trace
Here is a summary of all these concepts. Most the concepts are from Wikipedia. A larger figure is shown below: In mathematics, the gradient is a multivariable generalization of the derivative. While a derivative can be defined on functions of a single variable, for functions of several variables, the gradient takes its place. The gradient…
[Summary] Talk by Dr. Chakareski: Networked Virtual and Augmented Reality: The New Frontier
Jacob Chakareski is an Assistant Professor of Electrical and Computer Engineering at The University of Alabama, where he leads the Laboratory for VR/AR Immersive Communication (LION). His interests span networked virtual and augmented reality systems, UAVIoT sensing and communication, and rigorous machine learning for stochastic control. Dr. Chakareski received the Adobe Digital Experience Faculty Research…
Estimated Cost of Per Atom Function in Realtime Shaders on the GPU
I have created a grouped list of estimated cost of instructions according to this Chinese reference. This may not be accurate, but is mostly correct from my experience. Some intuitions are: Abs, saturate are free (Why is clamp in GLSL not free? I doubt it) Log, exp, sqrt are almost free! (That’s why Kernel Foveated Rendering…
Tianqi Chen published WebGLbased deep learning…
Tianqi Chen, a senior fellow student from ACM Class of Shanghai Jiao Tong University (now at UW) published TVM, which introduced the first WebGLbased deep learning… This is fully possible given existing neural network code on ShaderToy… But still, realtime deep learning at the browser side is clever, and ambitious… and they did it! …
The Web Version of My AI Chatbot – LJAI
LJAI is a personal chatbot hosted in my private server, available on the WeChat platform by searching 爱打滚的玲酱, and now available via the Web platform! What makes LJAI different is the virtual and real mapping of our own cat. Recently, we have acquired over 120 users, and thousands of chat messages. http://veritayuan.com/lingjiang Compared with the…
Exploration of the IEEE754 Floating Point Standard
IEEE754 Question: Execute the following while loops (modifying the code to add a counter). Explain the reasons these loops for the observed count value.
1 2 3 4 
c = zeros(3,1); x = 1; while 1 + x > 1, x = x / 2, c(1) = c(1) + 1, end %53 x = 1; while x + x > x, x = 2 * x, c(2) = c(2) + 1, end %1024 x = 1; while x + x > x, x = x / 2, c(3) = c(3) + 1, end %1075 
Solution The counter is 53, 1024, 1075 for the above three for loops. The code is attatched in 4.2. According to IEEE754 (double precision), the machine epsilon is $2^{52}$….
My CUDA Helper for Visual Studio
My CUDA Helper for Visual Studio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 
#pragma once #pragma comment(lib, "cudart.lib") #if _DEBUG #pragma comment(lib, "opencv_world330d.lib") #else #pragma comment(lib, "opencv_world330.lib") #endif #ifdef __CUDACC__ #define KERNEL_ARG2(grid, block) <<< grid, block >>> #define KERNEL_ARG3(grid, block, sh_mem) <<< grid, block, sh_mem >>> #define KERNEL_ARG4(grid, block, sh_mem, stream) <<< grid, block, sh_mem, stream >>> #else #define KERNEL_ARG2(grid, block) #define KERNEL_ARG3(grid, block, sh_mem) #define KERNEL_ARG4(grid, block, sh_mem, stream) #endif #ifdef __INTELLISENSE__ int __float_as_int(float in); float __int_as_float(int in); short __float2half_rn(float in); //CompareandSwap operation. unsigned int atomicInc(unsigned int* address, unsigned int val); int atomicCAS(int* address, int compare, int val); unsigned int atomicCAS(unsigned int* address, unsigned int compare, unsigned int val); unsigned long long int atomicCAS(unsigned long long int* address, unsigned long long int compare, unsigned long long int val); int atomicAdd(int* address, int val); unsigned int atomicAdd(unsigned int* address, unsigned int val); unsigned long long int atomicAdd(unsigned long long int* address, unsigned long long int val); float atomicAdd(float* address, float val); double atomicAdd(double* address, double val); int atomicSub(int* address, int val); unsigned int atomicSub(unsigned int* address, unsigned int val); template<class T> T tex2DLayered(cudaTextureObject_t texObj, float x, float y, int layer); template<class T> T tex2DLayered(cudaTextureObject_t texObj, int x, int y, int layer); template<class T> T tex2DLayered(texture<unsigned short, cudaTextureType2DLayered, cudaReadModeElementType> texObj, int x, int y, int layer); template<class T> T surf2DLayeredread(cudaSurfaceObject_t surfObj, int x, int y, int layer, boundaryMode = cudaBoundaryModeTrap); template<class T> void surf2DLayeredread(T data, cudaSurfaceObject_t surfObj, int x, int y, int layer, boundaryMode = cudaBoundaryModeTrap); template<class T> void surf3Dwrite(T data, cudaSurfaceObject_t surfObj, int x, int y, int z, boundaryMode = cudaBoundaryModeTrap); #define __syncthreads() #define __syncthreads_or(a) a template<class T> T tex3D(cudaTextureObject_t texObj, float x, float y, float z); template<class T> T tex3DLod(cudaTextureObject_t texObj, float x, float y, float z, float level); #endif 
Implementing Instagram Filters: Brannan, Earlybird
This series illustrate my shaders on Shadertoy.com, which renders Instagram filters in real time. Brannan Filter Brannan filter emphasizes the grey and green colors, and paints a metallic tint upon the photos. Click the mouse for comparison. I write this shader to stylize your photos in batch on my own ShaderToy renderer 🙂 (To be…
Clock
World
Random Posts
Share
Slideshow

Recent Posts
 [Summary] Omnipresence 3D for Multiview Mixed Reality
 [Summary] PointNet, PointNet++, and PUNet
 Gradient, Circulation, Laplacian, Divergence, Jacobian, Hessian, and Trace
 [Summary] Talk by Dr. Chakareski: Networked Virtual and Augmented Reality: The New Frontier
 Estimated Cost of Per Atom Function in Realtime Shaders on the GPU
Twitter
My TweetsRecent Comments
 starea on Estimated Cost of Per Atom Function in Realtime Shaders on the GPU
 Ben Parry on Estimated Cost of Per Atom Function in Realtime Shaders on the GPU
 starea on My Chatbot in WeChat Platform
 starea on Equirectangular Projection, Gnomonic Projection, and Cubemaps
 Monty on Equirectangular Projection, Gnomonic Projection, and Cubemaps
Archives
 April 2018
 March 2018
 November 2017
 October 2017
 August 2017
 July 2017
 April 2017
 March 2017
 February 2017
 January 2017
 December 2016
 November 2016
 October 2016
 September 2016
 June 2016
 April 2016
 March 2016
 February 2016
 December 2015
 November 2015
 October 2015
 September 2015
 August 2015
 July 2015
 June 2015
 May 2015
 September 2014
 September 2012
 October 2010
 May 2010
 July 2008
Categories
Meta