"""Synthetic numerical smoke example; not a validated casting geometry.""" import numpy as np from inference import AceMini # A simple 20 mm cube; no training geometry is distributed. surface=np.array([[x,y,z] for x in [-10,10] for y in [-10,10] for z in [0,20]],dtype=float) normals=surface-np.array([0,0,10]);normals/=np.linalg.norm(normals,axis=1,keepdims=True) data={'encoder_surface_mm':surface,'encoder_normals':normals,'points_m':np.array([[0,0,.005],[0,0,.01],[0,0,.015]])} spec={'geometry':{'attachment_points_mm':[[0,0,0]],'inlet_centers_mm':[[0,0,-12]],'inlet_directions':[[0,0,1]],'gate_count':1,'gate_radius_mm':2},'process':{'inlet_velocity_m_s':.5}} model=AceMini();outputs=model.predict(spec,data,time_s=1,deformation_phase=.5) for name,values in outputs.items(): assert np.isfinite(values).all(),name print(name,values.shape)