A new volume penalization method to enforce immersed boundary conditions in Navier-Stokes and Euler equations is presented. Previously, Brinkman penalization has been used to introduce solid obstacles modeled as porous media. This approach is limited to Dirichlet-type conditions on velocity and temperature, and in inviscid supersonic flows led to wrong shock reflection. It builds upon Brinkman penalization by allowing Neumann conditions to be applied in a general fashion. Correct boundary conditions are achieved through characteristic propagation into the thin layer inside of the obstacle. Inward pointing characteristics ensure nonphysical solution inside the obstacle does not propagate out to the fluid. Dirichlet boundary conditions are enforced similarly to Brinkman method. Penalization parameters are chosen so they act on a much smaller timescale than the characteristic timescale of the flow. Main advantage of this method is systematic means of controlling the error. This approach is general and applicable to a wide variety of flow regimes. This talk is focused on the progress that was made towards moving obstacles and method extension to the 3D flows around irregular shapes.